Class OptionsSupport<T extends Enum<? extends Option> & Option>

java.lang.Object
ru.vyarus.dropwizard.guice.module.context.option.internal.OptionsSupport<T>
Type Parameters:
T - helper type to define option

public final class OptionsSupport<T extends Enum<? extends Option> & Option> extends 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 Details

    • OptionsSupport

      public OptionsSupport()
  • Method Details

    • set

      public void set(T option, Object value)
      Parameters:
      option - option enum
      value - option value (not null)
      Throws:
      NullPointerException - for null value
      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:
      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 Set<T> getOptions()
      Returns:
      set with all used options