Class EnumStringArgumentType<T extends Enum<T>>

java.lang.Object
net.sourceforge.argparse4j.impl.type.EnumStringArgumentType<T>
Type Parameters:
T - Type of enum
All Implemented Interfaces:
ArgumentType<T>, MetavarInference

public class EnumStringArgumentType<T extends Enum<T>> extends Object implements ArgumentType<T>, MetavarInference

ArgumentType subclass for enum type.

Uses Enum.toString() instead of Enum.name() as the String representation of the enum. For enums that do not override Enum.toString(), this behaves the same as ReflectArgumentType.

  • Field Details

  • Constructor Details

    • EnumStringArgumentType

      public EnumStringArgumentType(Class<T> type)
  • Method Details

    • forEnum

      public static <T extends Enum<T>> EnumStringArgumentType<T> forEnum(Class<T> type)

      Creates an EnumStringArgumentType for the given enum type.

      Type Parameters:
      T - The type of the enum
      Parameters:
      type - type of the enum the EnumStringArgumentType should convert to
      Returns:
      an EnumStringArgumentType that converts Strings to type
    • convert

      public T convert(ArgumentParser parser, Argument arg, String value) throws ArgumentParserException
      Description copied from interface: ArgumentType

      Converts value to appropriate type.

      If the objects derived from RuntimeException are thrown in conversion because of invalid input from command line, subclass must catch these exceptions and wrap them in ArgumentParserException and give simple error message to explain what happened briefly.

      Specified by:
      convert in interface ArgumentType<T extends Enum<T>>
      Parameters:
      parser - The parser.
      arg - The argument this type attached to.
      value - The attribute value.
      Returns:
      Converted object.
      Throws:
      ArgumentParserException - If conversion fails.
    • inferMetavar

      public String[] inferMetavar()

      Infers metavar based on given type.

      The inferred metavar contains all enum constant string representation, obtained by calling their Object.toString() method.

      Specified by:
      inferMetavar in interface MetavarInference
      Returns:
      inferred array of metavar strings, or null if there is no metavar inferred.
      Since:
      0.7.0
      See Also: