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 boolean
canGreedySearch
(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 com.github.rvesse.airline.parser.options.ListValueOptionParser
getValues
Methods inherited from class com.github.rvesse.airline.parser.options.AbstractOptionParser
findOption, findOption, hasShortNamePrefix, isSeparatorOrOption, noValueForOption
Methods inherited from class com.github.rvesse.airline.parser.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:OptionParser
Parses one/more options from the token stream- Specified by:
parseOptions
in interfaceOptionParser<T>
- Overrides:
parseOptions
in classListValueOptionParser<T>
- Parameters:
tokens
- Tokensstate
- Current parser stateallowedOptions
- Allowed options at this point of the parsing- Returns:
- New parser state, may return
null
if 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
-