Class Settings_impl

  • All Implemented Interfaces:
    Settings

    public class Settings_impl
    extends java.lang.Object
    implements Settings
    Class that reads properties files containing external parameter overrides used by the ExternalOverrideSettings_impl class. Similar to java.util.Properties but: supports UTF-8 files reverses priority in that duplicate key values are ignored, i.e. values cannot be changed arrays are represented as strings, e.g. '[elem1,elem2]', and can span multiple lines '\' can be used to escape $ [ , ] and the line-end
    Author:
    burn
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static java.lang.String LOG_RESOURCE_BUNDLE  
    • Constructor Summary

      Constructors 
      Constructor Description
      Settings_impl()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Set<java.lang.String> getKeys()
      Return a set of keys of all properties in the map
      java.lang.String getSetting​(java.lang.String name)
      Get the value of an external override setting.
      java.lang.String[] getSettingArray​(java.lang.String name)
      Get the array of values for an external override setting.
      void load​(java.io.InputStream in)
      Load properties from an input stream.
      void loadSystemDefaults()
      Load properties from the comma-separated list of resources specified in the system property UimaExternalOverrides Resource names may be specified with a prefix of "file:" or "path:".
      java.lang.String lookUp​(java.lang.String name)
      Look up the value for a property.
      java.lang.String resolve​(java.lang.String value)
      Replace variable references in a string.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOG_RESOURCE_BUNDLE

        protected static final java.lang.String LOG_RESOURCE_BUNDLE
        See Also:
        Constant Field Values
    • Constructor Detail

      • Settings_impl

        public Settings_impl()
    • Method Detail

      • getKeys

        public java.util.Set<java.lang.String> getKeys()
        Return a set of keys of all properties in the map
        Specified by:
        getKeys in interface Settings
        Returns:
        - set of strings
      • load

        public void load​(java.io.InputStream in)
                  throws java.io.IOException
        Load properties from an input stream. Existing properties are not changed and a warning is logged if the new value is different. May be called multiple times, so effective search is in load order. Arrays are enclosed in [] and the elements may be separated by , or new-line, so can span multiple lines without using a final \
        Specified by:
        load in interface Settings
        Parameters:
        in - - Stream holding properties
        Throws:
        java.io.IOException - if name characters illegal
      • loadSystemDefaults

        public void loadSystemDefaults()
                                throws ResourceConfigurationException
        Load properties from the comma-separated list of resources specified in the system property UimaExternalOverrides Resource names may be specified with a prefix of "file:" or "path:". If the prefix is "path:" the name must use the Java-style dotted format, similar to an import by name. The name is converted to a URL with a suffix of ".settings" and is looked up in the datapath and classpath. If the prefix is "file:" or is omitted the filesystem is searched. Resources are loaded in list order. Duplicate properties are ignored so entries in a file override any in following files.
        Specified by:
        loadSystemDefaults in interface Settings
        Throws:
        ResourceConfigurationException - wraps IOException
      • lookUp

        public java.lang.String lookUp​(java.lang.String name)
                                throws ResourceConfigurationException
        Look up the value for a property. Recursively evaluate the value replacing references ${key} with the value of the key. Nested references such as ${name-${suffix}} are supported. Exceptions are thrown for circular references and undefined references. To avoid evaluation and get ${key} in the output escape the $ or {, e.g. \${key} Arrays are returned as a comma-separated string, e.g. "[elem1,elem2]" Note: escape characters are not removed as they may affect array separators. Used by getSetting and getSettingArray
        Specified by:
        lookUp in interface Settings
        Parameters:
        name - - name to look up
        Returns:
        - value of property
        Throws:
        ResourceConfigurationException - if the value references an undefined property
      • resolve

        public java.lang.String resolve​(java.lang.String value)
                                 throws java.lang.Exception
        Replace variable references in a string.
        Parameters:
        value - - String to scan for variable references
        Returns:
        - value with all references resolved and escapes processed
        Throws:
        java.lang.Exception - -