Class OptionsSupport<T extends java.lang.Enum & Option>

  • Type Parameters:
    T - helper type to define option

    public final class OptionsSupport<T extends java.lang.Enum & Option>
    extends java.lang.Object
    Options support logic. Holds configured options and controls option correctness.

    Because enums are used for option definition, option value checks couldn't be performed at compile time. Check is performed manually during value assignment.

    Option may have null as default value, but null can't be assigned manually.

    Since:
    09.08.2016
    • Constructor Detail

      • OptionsSupport

        public OptionsSupport()
    • Method Detail

      • set

        public void set​(T option,
                        java.lang.Object value)
        Parameters:
        option - option enum
        value - option value (not null)
        Throws:
        java.lang.NullPointerException - for null value
        java.lang.IllegalArgumentException - for value incompatible with option type
      • get

        public <P> P get​(T option)
        Type Parameters:
        P - option value
        Parameters:
        option - option enum
        Returns:
        defined or default option value
      • getHolder

        public OptionHolder getHolder​(T option)
        Parameters:
        option - option
        Returns:
        option holder object
        Throws:
        java.lang.IllegalArgumentException - if option is not registered (not used)
      • containsOption

        public boolean containsOption​(T option)
        Parameters:
        option - option
        Returns:
        true if option registered (was used or set), false otherwise
      • getOptions

        public java.util.Set<T> getOptions()
        Returns:
        set with all used options