Class Option<T>

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected T defval  
      protected java.lang.Class<T> type  
    • Constructor Summary

      Constructors 
      Constructor Description
      Option​(java.lang.String longName, java.lang.Class<T> type, java.lang.Enum category, T[] options, T defval, java.lang.String description)
      Create a new option with the given values.
      Option​(java.lang.String prefix, java.lang.String shortName, java.lang.Class<T> type, java.lang.Enum category, T[] options, T defval, java.lang.String description)
      Create a new option with the given values.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static Option<java.lang.Boolean> bool​(java.lang.String longName, java.lang.Enum category, java.lang.Boolean defval, java.lang.String description)
      Create a new Boolean option with the given configuration.
      static Option<java.lang.Boolean> bool​(java.lang.String longName, java.lang.Enum category, java.lang.String description)
      Create a new Boolean option with the given configuration.
      static Option<java.lang.Boolean> bool​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.Boolean defval, java.lang.String description)
      Create a new Boolean option with the given configuration.
      static Option<java.lang.Boolean> bool​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.String description)
      Create a new Boolean option with the given configuration.
      T defaultValue()
      The default value for the option, or null if no default is provided.
      java.lang.String description()
      The long description of the property, as for documentation and configuration file templates.
      java.lang.String displayName()
      The display name of the option's property, either the short name or the full name.
      static <T extends java.lang.Enum<T>>
      Option<T>
      enumeration​(java.lang.String longName, java.lang.Enum category, java.lang.Class<T> enumClass, java.lang.String description)
      Create a new Enumeration-based option with the given configuration.
      static <T extends java.lang.Enum<T>>
      Option<T>
      enumeration​(java.lang.String longName, java.lang.Enum category, T defval, java.lang.String description)
      Create a new Enumeration-based option with the given configuration.
      static <T extends java.lang.Enum<T>>
      Option<T>
      enumeration​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.Class<T> enumClass, java.lang.String description)
      Create a new Enumeration-based option with the given configuration.
      static <T extends java.lang.Enum<T>>
      Option<T>
      enumeration​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, T defval, java.lang.String description)
      Create a new Enumeration-based option with the given configuration.
      void force​(java.lang.String value)
      Force the property value to the given value for all future loads and reloads.
      static java.lang.String formatOptions​(Option... options)
      Format the given options in a way suitable for use as a configuration file or documentation.
      static java.lang.String formatOptions​(java.util.Collection<Option> options)
      Format the given options in a way suitable for use as a configuration file or documentation.
      static java.lang.String formatValues​(Option... options)
      Format the given options to show their loaded values in the current JVM.
      static java.lang.String formatValues​(java.util.Collection<Option> options)
      Format the given options to show their loaded values in the current JVM.
      static Option<java.lang.Integer> integer​(java.lang.String longName, java.lang.Enum category, java.lang.Integer[] options, java.lang.Integer defval, java.lang.String description)
      Create a new Integer option with the given configuration.
      static Option<java.lang.Integer> integer​(java.lang.String longName, java.lang.Enum category, java.lang.Integer[] options, java.lang.String description)
      Create a new Integer option with the given configuration.
      static Option<java.lang.Integer> integer​(java.lang.String longName, java.lang.Enum category, java.lang.Integer defval, java.lang.String description)
      Create a new Integer option with the given configuration.
      static Option<java.lang.Integer> integer​(java.lang.String longName, java.lang.Enum category, java.lang.String description)
      Create a new Integer option with the given configuration.
      static Option<java.lang.Integer> integer​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.Integer[] options, java.lang.Integer defval, java.lang.String description)
      Create a new Integer option with the given configuration.
      static Option<java.lang.Integer> integer​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.Integer[] options, java.lang.String description)
      Create a new Integer option with the given configuration.
      static Option<java.lang.Integer> integer​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.Integer defval, java.lang.String description)
      Create a new Integer option with the given configuration.
      static Option<java.lang.Integer> integer​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.String description)
      Create a new Integer option with the given configuration.
      boolean isSpecified()
      Return true if the option's property was specified, false otherwise.
      T load()
      Return the value of the option, loading if it has not been already.
      java.lang.String loadProperty()
      Load the option's property, as if by calling java.lang.System#getProperty
      T[] options()
      The array of accepted values for the option, or null if any values are accepted.
      java.lang.String prefix()
      If the property has a prefix, return it.
      java.lang.String propertyName()
      Return the full property name for the option.
      T reload()
      Force a load of the option's property and return the loaded value.
      protected abstract T reloadValue()
      Perform the appropriate load and conversion for the option's property.
      java.lang.String shortName()
      If the option has a short name, return it.
      static Option<java.lang.String> string​(java.lang.String longName, java.lang.Enum category, java.lang.String description)
      Create a new String option with the given configuration.
      static Option<java.lang.String> string​(java.lang.String longName, java.lang.Enum category, java.lang.String[] options, java.lang.String description)
      Create a new String option with the given configuration.
      static Option<java.lang.String> string​(java.lang.String longName, java.lang.Enum category, java.lang.String[] options, java.lang.String defval, java.lang.String description)
      Create a new String option with the given configuration.
      static Option<java.lang.String> string​(java.lang.String longName, java.lang.Enum category, java.lang.String defval, java.lang.String description)
      Create a new String option with the given configuration.
      static Option<java.lang.String> string​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.String description)
      Create a new String option with the given configuration.
      static Option<java.lang.String> string​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.String[] options, java.lang.String description)
      Create a new String option with the given configuration.
      static Option<java.lang.String> string​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.String[] options, java.lang.String defval, java.lang.String description)
      Create a new String option with the given configuration.
      static Option<java.lang.String> string​(java.lang.String prefix, java.lang.String name, java.lang.Enum category, java.lang.String defval, java.lang.String description)
      Create a new String option with the given configuration.
      java.lang.String toString()  
      java.lang.Class<T> type()
      The type returned for the option.
      void unforce()
      Undoes any previous force, and goes back to an unloaded state.
      • Methods inherited from class java.lang.Object

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

      • type

        protected final java.lang.Class<T> type
      • defval

        protected final T defval
    • Constructor Detail

      • Option

        public Option​(java.lang.String prefix,
                      java.lang.String shortName,
                      java.lang.Class<T> type,
                      java.lang.Enum category,
                      T[] options,
                      T defval,
                      java.lang.String description)
        Create a new option with the given values.
        Type Parameters:
        C - an enumeration type
        Parameters:
        prefix - the prefix used for loading this option from properties
        shortName - the rest of the property name
        type - the value type of the option
        category - the category to which this option belongs
        options - a list of supported for the option, or null if the set is not applicable
        defval - the default value for the option
        description - a description for the option
      • Option

        public Option​(java.lang.String longName,
                      java.lang.Class<T> type,
                      java.lang.Enum category,
                      T[] options,
                      T defval,
                      java.lang.String description)
        Create a new option with the given values.
        Type Parameters:
        C - an enumeration type
        Parameters:
        longName - the property name
        type - the value type of the option
        category - the category to which this option belongs
        options - a list of supported for the option, or null if the set is not applicable
        defval - the default value for the option
        description - a description for the option
    • Method Detail

      • string

        public static Option<java.lang.String> string​(java.lang.String prefix,
                                                      java.lang.String name,
                                                      java.lang.Enum category,
                                                      java.lang.String description)
        Create a new String option with the given configuration.
      • string

        public static Option<java.lang.String> string​(java.lang.String longName,
                                                      java.lang.Enum category,
                                                      java.lang.String description)
        Create a new String option with the given configuration.
      • string

        public static Option<java.lang.String> string​(java.lang.String prefix,
                                                      java.lang.String name,
                                                      java.lang.Enum category,
                                                      java.lang.String defval,
                                                      java.lang.String description)
        Create a new String option with the given configuration.
      • string

        public static Option<java.lang.String> string​(java.lang.String longName,
                                                      java.lang.Enum category,
                                                      java.lang.String defval,
                                                      java.lang.String description)
        Create a new String option with the given configuration.
      • string

        public static Option<java.lang.String> string​(java.lang.String prefix,
                                                      java.lang.String name,
                                                      java.lang.Enum category,
                                                      java.lang.String[] options,
                                                      java.lang.String description)
        Create a new String option with the given configuration.
      • string

        public static Option<java.lang.String> string​(java.lang.String longName,
                                                      java.lang.Enum category,
                                                      java.lang.String[] options,
                                                      java.lang.String description)
        Create a new String option with the given configuration.
      • string

        public static Option<java.lang.String> string​(java.lang.String prefix,
                                                      java.lang.String name,
                                                      java.lang.Enum category,
                                                      java.lang.String[] options,
                                                      java.lang.String defval,
                                                      java.lang.String description)
        Create a new String option with the given configuration.
      • string

        public static Option<java.lang.String> string​(java.lang.String longName,
                                                      java.lang.Enum category,
                                                      java.lang.String[] options,
                                                      java.lang.String defval,
                                                      java.lang.String description)
        Create a new String option with the given configuration.
      • bool

        public static Option<java.lang.Boolean> bool​(java.lang.String prefix,
                                                     java.lang.String name,
                                                     java.lang.Enum category,
                                                     java.lang.String description)
        Create a new Boolean option with the given configuration.
      • bool

        public static Option<java.lang.Boolean> bool​(java.lang.String longName,
                                                     java.lang.Enum category,
                                                     java.lang.String description)
        Create a new Boolean option with the given configuration.
      • bool

        public static Option<java.lang.Boolean> bool​(java.lang.String prefix,
                                                     java.lang.String name,
                                                     java.lang.Enum category,
                                                     java.lang.Boolean defval,
                                                     java.lang.String description)
        Create a new Boolean option with the given configuration.
      • bool

        public static Option<java.lang.Boolean> bool​(java.lang.String longName,
                                                     java.lang.Enum category,
                                                     java.lang.Boolean defval,
                                                     java.lang.String description)
        Create a new Boolean option with the given configuration.
      • integer

        public static Option<java.lang.Integer> integer​(java.lang.String prefix,
                                                        java.lang.String name,
                                                        java.lang.Enum category,
                                                        java.lang.String description)
        Create a new Integer option with the given configuration.
      • integer

        public static Option<java.lang.Integer> integer​(java.lang.String prefix,
                                                        java.lang.String name,
                                                        java.lang.Enum category,
                                                        java.lang.Integer[] options,
                                                        java.lang.String description)
        Create a new Integer option with the given configuration.
      • integer

        public static Option<java.lang.Integer> integer​(java.lang.String longName,
                                                        java.lang.Enum category,
                                                        java.lang.String description)
        Create a new Integer option with the given configuration.
      • integer

        public static Option<java.lang.Integer> integer​(java.lang.String longName,
                                                        java.lang.Enum category,
                                                        java.lang.Integer[] options,
                                                        java.lang.String description)
        Create a new Integer option with the given configuration.
      • integer

        public static Option<java.lang.Integer> integer​(java.lang.String prefix,
                                                        java.lang.String name,
                                                        java.lang.Enum category,
                                                        java.lang.Integer defval,
                                                        java.lang.String description)
        Create a new Integer option with the given configuration.
      • integer

        public static Option<java.lang.Integer> integer​(java.lang.String longName,
                                                        java.lang.Enum category,
                                                        java.lang.Integer defval,
                                                        java.lang.String description)
        Create a new Integer option with the given configuration.
      • integer

        public static Option<java.lang.Integer> integer​(java.lang.String prefix,
                                                        java.lang.String name,
                                                        java.lang.Enum category,
                                                        java.lang.Integer[] options,
                                                        java.lang.Integer defval,
                                                        java.lang.String description)
        Create a new Integer option with the given configuration.
      • integer

        public static Option<java.lang.Integer> integer​(java.lang.String longName,
                                                        java.lang.Enum category,
                                                        java.lang.Integer[] options,
                                                        java.lang.Integer defval,
                                                        java.lang.String description)
        Create a new Integer option with the given configuration.
      • enumeration

        public static <T extends java.lang.Enum<T>> Option<T> enumeration​(java.lang.String prefix,
                                                                          java.lang.String name,
                                                                          java.lang.Enum category,
                                                                          java.lang.Class<T> enumClass,
                                                                          java.lang.String description)
        Create a new Enumeration-based option with the given configuration.
      • enumeration

        public static <T extends java.lang.Enum<T>> Option<T> enumeration​(java.lang.String longName,
                                                                          java.lang.Enum category,
                                                                          java.lang.Class<T> enumClass,
                                                                          java.lang.String description)
        Create a new Enumeration-based option with the given configuration.
      • enumeration

        public static <T extends java.lang.Enum<T>> Option<T> enumeration​(java.lang.String prefix,
                                                                          java.lang.String name,
                                                                          java.lang.Enum category,
                                                                          T defval,
                                                                          java.lang.String description)
        Create a new Enumeration-based option with the given configuration.
      • enumeration

        public static <T extends java.lang.Enum<T>> Option<T> enumeration​(java.lang.String longName,
                                                                          java.lang.Enum category,
                                                                          T defval,
                                                                          java.lang.String description)
        Create a new Enumeration-based option with the given configuration.
      • formatValues

        public static java.lang.String formatValues​(Option... options)
        Format the given options to show their loaded values in the current JVM.
      • formatValues

        public static java.lang.String formatValues​(java.util.Collection<Option> options)
        Format the given options to show their loaded values in the current JVM.
      • formatOptions

        public static java.lang.String formatOptions​(Option... options)
        Format the given options in a way suitable for use as a configuration file or documentation.
      • formatOptions

        public static java.lang.String formatOptions​(java.util.Collection<Option> options)
        Format the given options in a way suitable for use as a configuration file or documentation.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • loadProperty

        public java.lang.String loadProperty()
        Load the option's property, as if by calling java.lang.System#getProperty
      • isSpecified

        public boolean isSpecified()
        Return true if the option's property was specified, false otherwise.
      • load

        public final T load()
        Return the value of the option, loading if it has not been already.
      • reload

        public final T reload()
        Force a load of the option's property and return the loaded value.
      • force

        public void force​(java.lang.String value)
        Force the property value to the given value for all future loads and reloads.
        Parameters:
        value -
      • unforce

        public void unforce()
        Undoes any previous force, and goes back to an unloaded state.
      • reloadValue

        protected abstract T reloadValue()
        Perform the appropriate load and conversion for the option's property.
      • shortName

        public java.lang.String shortName()
        If the option has a short name, return it. Otherwise null.
      • propertyName

        public java.lang.String propertyName()
        Return the full property name for the option.
      • prefix

        public java.lang.String prefix()
        If the property has a prefix, return it. Otherwise null.
      • displayName

        public java.lang.String displayName()
        The display name of the option's property, either the short name or the full name.
      • type

        public java.lang.Class<T> type()
        The type returned for the option.
        Returns:
      • options

        public T[] options()
        The array of accepted values for the option, or null if any values are accepted.
      • defaultValue

        public T defaultValue()
        The default value for the option, or null if no default is provided.
      • description

        public java.lang.String description()
        The long description of the property, as for documentation and configuration file templates.