001    /**
002     * Copyright (C) 2009-2013 Barchart, Inc. <http://www.barchart.com/>
003     *
004     * All rights reserved. Licensed under the OSI BSD License.
005     *
006     * http://www.opensource.org/licenses/bsd-license.php
007     */
008    package com.barchart.udt;
009    
010    import com.barchart.udt.lib.LibraryLoaderUDT;
011    
012    public final class ResourceUDT {
013    
014            private ResourceUDT() {
015                    //
016            }
017    
018            /** */
019            public static final String PACKAGE_NAME = //
020            ResourceUDT.class.getPackage().getName();
021    
022            /**
023             * system property which if provided will override
024             * {@link ResourceUDT#DEFAULT_LIBRARY_EXTRACT_LOCATION}
025             */
026            public static final String PROPERTY_LIBRARY_EXTRACT_LOCATION = //
027            PACKAGE_NAME + ".library.extract.location";
028    
029            /** system property which if provided will override default native loader */
030            public static final String PROPERTY_LOADER_CLASS_NAME = //
031            PACKAGE_NAME + ".loader.class.name";
032    
033            /**
034             * target destination of native wrapper library *.dll or *.so files that are
035             * extracted from this library jar;
036             */
037            public static final String DEFAULT_LIBRARY_EXTRACT_LOCATION = //
038            "./lib/bin";
039    
040            /** */
041            public static final String DEFAULT_LIBRARY_LOADER_CLASS = //
042            LibraryLoaderUDT.class.getName();
043    
044            /***/
045            public static String getLibraryExtractLocation() {
046                    return System.getProperty( //
047                                    PROPERTY_LIBRARY_EXTRACT_LOCATION, //
048                                    DEFAULT_LIBRARY_EXTRACT_LOCATION);
049            }
050    
051            /***/
052            public static void setLibraryExtractLocation(final String location) {
053                    System.setProperty(PROPERTY_LIBRARY_EXTRACT_LOCATION, location);
054            }
055    
056            /***/
057            public static String getLibraryLoaderClassName() {
058                    return System.getProperty( //
059                                    PROPERTY_LOADER_CLASS_NAME, //
060                                    DEFAULT_LIBRARY_LOADER_CLASS);
061            }
062    
063            /***/
064            public static void setLibraryLoaderClassName(final String className) {
065                    System.setProperty(PROPERTY_LOADER_CLASS_NAME, className);
066            }
067    
068    }