Class EnumStringArgumentType<T extends Enum<T>>
- Type Parameters:
T
- Type of enum
- All Implemented Interfaces:
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 Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconvert
(ArgumentParser parser, Argument arg, String value) Convertsvalue
to appropriate type.static <T extends Enum<T>>
EnumStringArgumentType<T> Creates anEnumStringArgumentType
for the given enum type.String[]
Infers metavar based on given type.
-
Field Details
-
type_
-
-
Constructor Details
-
EnumStringArgumentType
-
-
Method Details
-
forEnum
Creates an
EnumStringArgumentType
for the given enum type.- Type Parameters:
T
- The type of the enum- Parameters:
type
- type of the enum theEnumStringArgumentType
should convert to- Returns:
- an
EnumStringArgumentType
that converts Strings totype
-
convert
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 inArgumentParserException
and give simple error message to explain what happened briefly.- Specified by:
convert
in interfaceArgumentType<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
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 interfaceMetavarInference
- Returns:
- inferred array of metavar strings, or null if there is no metavar inferred.
- Since:
- 0.7.0
- See Also:
-