Class PropertyDefaultSource

  • All Implemented Interfaces:
    DefaultSource

    public class PropertyDefaultSource
    extends java.lang.Object
    implements DefaultSource

    A DefaultSource with values defined in a java.util.Properties object. In order to determine which parameter a value is associated with, each property key is first compared to each parameter's unique ID. Failing a match, each parameter's long flag is checked, and finally the short flags are checked. A PropertyDefaultSource may contain a mix of IDs, long flags, and short flags.

    A PropertyDefaultSource is also incredibly useful as a configuration file loader. Multiple PropertyDefaultSources can be chained together in a JSAP in order to prioritize their entries (e.g., load "~/myproject.conf" first, then "/etc/myproject.conf").

    Author:
    Marty Lamb
    See Also:
    DefaultSource, Properties
    • Constructor Summary

      Constructors 
      Constructor Description
      PropertyDefaultSource​(java.io.InputStream in, boolean throwIOExceptions)
      Creates a new PropertyDefaultSource based upon the specified InputStream.
      PropertyDefaultSource​(java.lang.String propertyFileName, boolean throwIOExceptions)
      Creates a new PropertyDefaultSource by loading the specified file.
      PropertyDefaultSource​(java.util.Properties properties)
      Creates a new PropertyDefaultSource based upon the specified Properties object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Defaults getDefaults​(IDMap idMap, ExceptionMap exceptionMap)
      Returns a Defaults object based upon this PropertyDefaultSource's properties and the specified IDMap.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PropertyDefaultSource

        public PropertyDefaultSource​(java.lang.String propertyFileName,
                                     boolean throwIOExceptions)
        Creates a new PropertyDefaultSource by loading the specified file. The file is loaded when the JSAP requests the defaults from this object.
        Parameters:
        propertyFileName - the name of the properties file containing the default values.
        throwIOExceptions - if true, any encountered IOExceptions will be re-thrown. Set this to false if you want to ignore any exceptions (e.g., specified file does not exist).
      • PropertyDefaultSource

        public PropertyDefaultSource​(java.util.Properties properties)
        Creates a new PropertyDefaultSource based upon the specified Properties object.
        Parameters:
        properties - the Properties object containing the default values.
      • PropertyDefaultSource

        public PropertyDefaultSource​(java.io.InputStream in,
                                     boolean throwIOExceptions)
        Creates a new PropertyDefaultSource based upon the specified InputStream.
        Parameters:
        in - the InputStream containing the Properties.
        throwIOExceptions - if true, any encountered IOExceptions will be re-thrown.
    • Method Detail

      • getDefaults

        public Defaults getDefaults​(IDMap idMap,
                                    ExceptionMap exceptionMap)
        Returns a Defaults object based upon this PropertyDefaultSource's properties and the specified IDMap. In order to determine which parameter a value is associated with, each property key is first compared to each parameter's unique ID. Failing a match, each parameter's long flag is checked, and finally the short flags are checked. A PropertyDefaultSource may contain a mix of IDs, long flags, and short flags.
        Specified by:
        getDefaults in interface DefaultSource
        Parameters:
        idMap - the IDMap containing the current JSAP configuration.
        exceptionMap - the ExceptionMap object within which any encountered exceptions will be thrown.
        Returns:
        a Defaults object based upon this PropertyDefaultSource's properties and the specified IDMap.
        See Also:
        ExceptionMap.addException(String,Exception)