Class MaybeListValueOptionParser<T>
- All Implemented Interfaces:
OptionParser<T>
- Direct Known Subclasses:
GreedyMaybeListValueOptionParser
--name value
but which allows for the values to be a non-whitespace separated list
This is less strict than ListValueOptionParser which requires that values be non-whitespace separated
So for example --name foo,bar would be treated as the values foo and bar passed to the
--name option. Equally --name foo bar would do the same thing.
Note that this parser is non-greedy so if the command also uses Arguments or DefaultOption then it
will stop as soon as it sees enough values to satisfy the arity of the option it is parsing.
StandardOptionParser in that the standard parser would treat foo,bar as
a single value passed to the name option. This parser expects that the list it receives contains the correct number
of items for the arity of the option, or an exact multiple thereof and if not produces an error
You can also omit the whitespace between the name and the value list when using a single character name of the option
similar to how the ClassicGetOptParser works. For example -nfoo,bar is equivalent to our previous
example assuming that -n is an alternative name for the same option as --name.
The default separator for values is , but this can be configured as desired.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancanGreedySearch(ParseState<T> state) Gets whether we can do a greedy search for list value(s)parseOptions(org.apache.commons.collections4.iterators.PeekingIterator<String> tokens, ParseState<T> state, List<OptionMetadata> allowedOptions) Parses one/more options from the token streamMethods inherited from class ListValueOptionParser
getValuesMethods inherited from class AbstractOptionParser
findOption, findOption, hasShortNamePrefix, isSeparatorOrOption, noValueForOptionMethods inherited from class AbstractParser
getTypeConverter
-
Constructor Details
-
MaybeListValueOptionParser
public MaybeListValueOptionParser() -
MaybeListValueOptionParser
public MaybeListValueOptionParser(char separator)
-
-
Method Details
-
parseOptions
public ParseState<T> parseOptions(org.apache.commons.collections4.iterators.PeekingIterator<String> tokens, ParseState<T> state, List<OptionMetadata> allowedOptions) Description copied from interface:OptionParserParses one/more options from the token stream- Specified by:
parseOptionsin interfaceOptionParser<T>- Overrides:
parseOptionsin classListValueOptionParser<T>- Parameters:
tokens- Tokensstate- Current parser stateallowedOptions- Allowed options at this point of the parsing- Returns:
- New parser state, may return
nullif this parser could not parse the next token as an option
-
canGreedySearch
Gets whether we can do a greedy search for list value(s)- Parameters:
state- Parser State- Returns:
- True if a greedy search is permitted, false otherwise
-