Class EnumStringArgumentType<T extends java.lang.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 java.lang.Enum<T>> extends java.lang.Object implements ArgumentType<T>, MetavarInference
ArgumentType subclass for enum type.
Uses
Enum.toString()
instead ofEnum.name()
as the String representation of the enum. For enums that do not overrideEnum.toString()
, this behaves the same asReflectArgumentType
.
-
-
Constructor Summary
Constructors Constructor Description EnumStringArgumentType(java.lang.Class<T> type)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description T
convert(ArgumentParser parser, Argument arg, java.lang.String value)
Convertsvalue
to appropriate type.static <T extends java.lang.Enum<T>>
EnumStringArgumentType<T>forEnum(java.lang.Class<T> type)
Creates anEnumStringArgumentType
for the given enum type.java.lang.String[]
inferMetavar()
Infers metavar based on given type.
-
-
-
Constructor Detail
-
EnumStringArgumentType
public EnumStringArgumentType(java.lang.Class<T> type)
-
-
Method Detail
-
forEnum
public static <T extends java.lang.Enum<T>> EnumStringArgumentType<T> forEnum(java.lang.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 theEnumStringArgumentType
should convert to- Returns:
- an
EnumStringArgumentType
that converts Strings totype
-
convert
public T convert(ArgumentParser parser, Argument arg, java.lang.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 inArgumentParserException
and give simple error message to explain what happened briefly.- Specified by:
convert
in interfaceArgumentType<T extends java.lang.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 java.lang.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 interfaceMetavarInference
- Returns:
- inferred array of metavar strings, or null if there is no metavar inferred.
- Since:
- 0.7.0
- See Also:
MetavarInference.inferMetavar()
-
-