Class EnumeratedStringParser
java.lang.Object
com.martiansoftware.jsap.StringParser
com.martiansoftware.jsap.stringparsers.EnumeratedStringParser
A
StringParser
that enforces a limited set of String options for its
values.
These values are provided in the constructor together with one or two parameters
that control the processing of these values.
EnumeratedStringParser was generously contributed to JSAP by Klaus-Peter Berg of Siemens AG, Munich, Germany.
- Since:
- 1.03
- Version:
- 2.0
- Author:
- Klaus-Peter Berg, Siemens AG, Munich, Germany
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final char
char used to separate enumerated values when they are supplied to the constructor -
Constructor Summary
ConstructorsConstructorDescriptionEnumeratedStringParser
(String validOptionValues) Deprecated.EnumeratedStringParser
(String validOptionValues, boolean caseSensitive) Deprecated.EnumeratedStringParser
(String validOptionValues, boolean caseSensitive, boolean checkOptionChars) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionstatic EnumeratedStringParser
Returns an EnumeratedParameterParser with parameter "caseSensitive" set to false and "checkOptionChars" set to true.static EnumeratedStringParser
Returns an EnumeratedParameterParser with parameter "checkOptionChars" set to true.static EnumeratedStringParser
Returns an EnumeratedParameterParser.protected boolean
isValidOptionName
(String name) Check for valid enumerated option values ("names").Parses the specified argument, making sure it matches one of the valid options supplied to its constructor.Methods inherited from class com.martiansoftware.jsap.StringParser
setUp, tearDown
-
Field Details
-
CONSTRUCTOR_VALUE_SEPARATOR
public static final char CONSTRUCTOR_VALUE_SEPARATORchar used to separate enumerated values when they are supplied to the constructor- See Also:
-
-
Constructor Details
-
EnumeratedStringParser
public EnumeratedStringParser(String validOptionValues, boolean caseSensitive, boolean checkOptionChars) throws IllegalArgumentException Deprecated.Constructs a new instance of EnumeratedParameterParser.- Parameters:
validOptionValues
- a string that contains valid values for an option in the format "value_1;value_2;..;value_n"; spaces between values are allowed to make things more readable, e.g., "value_1; value_2"; option values have to be constructed using Java identifier characters if the checkOptionChars parameter tells the parser to do this.caseSensitive
- tells the parser whether the option value is case sensitivecheckOptionChars
- tells the parser whether to check for Java identifier conformant characters.- Throws:
IllegalArgumentException
- if the option value string has wrong format or is empty
-
EnumeratedStringParser
public EnumeratedStringParser(String validOptionValues, boolean caseSensitive) throws IllegalArgumentException Deprecated.Constructs a new instance of EnumeratedStringParser.- Throws:
IllegalArgumentException
-
EnumeratedStringParser
Deprecated.usegetParser(String)
.Constructs a new instance of EnumeratedStringParser.- Throws:
IllegalArgumentException
-
-
Method Details
-
getParser
public static EnumeratedStringParser getParser(String validOptionValues, boolean caseSensitive, boolean checkOptionChars) throws IllegalArgumentException Returns an EnumeratedParameterParser.- Parameters:
validOptionValues
- a string that contains valid values for an option in the format "value_1;value_2;..;value_n"; spaces between values are allowed to make things more readable, e.g., "value_1; value_2"; option values have to be constructed using Java identifier characters if the checkOptionChars parameter tells the parser to do this.caseSensitive
- tells the parser whether the option value is case sensitivecheckOptionChars
- tells the parser whether to check for Java identifier conformant characters.- Throws:
IllegalArgumentException
- if the option value string has wrong format or is empty
-
getParser
public static EnumeratedStringParser getParser(String validOptionValues, boolean caseSensitive) throws IllegalArgumentException Returns an EnumeratedParameterParser with parameter "checkOptionChars" set to true.- Parameters:
validOptionValues
- a string that contains valid values for an option in the format "value_1;value_2;..;value_n"; spaces between values are allowed to make things more readable, e.g., "value_1; value_2"; option values have to be constructed using Java identifier characters.caseSensitive
- tells the parser wether the option value is case sensitive- Throws:
IllegalArgumentException
- if the option value string has wrong format or is empty
-
getParser
public static EnumeratedStringParser getParser(String validOptionValues) throws IllegalArgumentException Returns an EnumeratedParameterParser with parameter "caseSensitive" set to false and "checkOptionChars" set to true. All command line arguments for this parser and the values provided by the user in the returned parser are converted to lower case.- Parameters:
validOptionValues
- a string that contains valid values for an option in the format "value_1;value_2;..;value_n"; spaces between values are allowed to make things more readable, e.g., "value_1; value_2"; option values have to be constructed using Java identifier characters.- Throws:
IllegalArgumentException
- if the option value string has wrong format or is empty
-
parse
Parses the specified argument, making sure it matches one of the valid options supplied to its constructor. If the specified argument is not a valid option, a ParseException is thrown.- Specified by:
parse
in classStringParser
- Parameters:
arg
- the argument to parse- Returns:
- the String resulting from the parsed argument.
- Throws:
ParseException
- if the specified argument cannot be parsed.
-
isValidOptionName
Check for valid enumerated option values ("names"). Allowed are Java identifier chars, i.e., alphanumeric chars + '$' + _' signs. If you need a different validation scheme you can override this method when subclassig EnumeratedStringParser.- Parameters:
name
- the option value to check- Returns:
- true, if the value contains only valid chars, false otherwise
-
getParser(String)
.