Class Settings_impl

  • All Implemented Interfaces:
    Settings

    public class Settings_impl
    extends 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
    • Constructor Detail

      • Settings_impl

        public Settings_impl()
    • Method Detail

      • getKeys

        public Set<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​(InputStream in)
                  throws 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:
        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 String lookUp​(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 String resolve​(String value)
                       throws 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:
        Exception - -