Class ModeOption<T extends Enum<T>>

java.lang.Object
dev.boze.api.option.Option<T>
dev.boze.api.option.ModeOption<T>
Type Parameters:
T - The enum type defining the available modes
All Implemented Interfaces:
Serializable<T>

public class ModeOption<T extends Enum<T>> extends Option<T>
An option for selecting from a predefined set of modes

ModeOption provides a way to store and modify enum values

The available modes are defined by the enum type parameter
  • Constructor Details

    • ModeOption

      public ModeOption(AddonModule owner, String name, String description, T defaultValue)
      Creates a new mode option
      Parameters:
      owner - The module that owns this option
      name - The name of this option
      description - The description of this option
      defaultValue - The initial value and default value
  • Method Details

    • getEnumClass

      public Class<T> getEnumClass()
      Gets the enum class of this mode option
      Returns:
      The enum class
    • getModes

      public List<String> getModes()
      Gets a list of all available mode names
      Returns:
      List of mode names
    • getModeName

      public String getModeName()
      Gets the name of the current mode
      Returns:
      The current mode name
    • getValue

      public T getValue()
      Description copied from class: Option
      Gets the current value of this option
      Specified by:
      getValue in class Option<T extends Enum<T>>
      Returns:
      The current value
    • setValue

      public T setValue(T newValue)
      Description copied from class: Option
      Sets the value of this option
      Specified by:
      setValue in class Option<T extends Enum<T>>
      Parameters:
      newValue - The new value to set
      Returns:
      The value that was set (may be different from newValue if validation was performed)
    • reset

      public T reset()
      Description copied from class: Option
      Resets this option to its default value
      Specified by:
      reset in class Option<T extends Enum<T>>
      Returns:
      The default value
    • setValueByName

      public void setValueByName(String name)
      Sets the current mode by name

      The name is case-insensitive

      Parameters:
      name - The name of the mode to set
    • toJson

      public com.google.gson.JsonObject toJson()
      Returns:
      The object as a JsonObject
    • fromJson

      public T fromJson(com.google.gson.JsonObject object)
      Parameters:
      object - The JsonObject to deserialize
      Returns:
      The deserialized object