Class MaybePairValueOptionParser<T>

  • All Implemented Interfaces:
    OptionParser<T>

    public class MaybePairValueOptionParser<T>
    extends AbstractOptionParser<T>
    An options parser that expects the name and values to be white space separated e.g. --name value but which allows for the values to be a non-whitespace separated pair

    So for example --name foo=bar would be treated as the values foo and bar passed to the --name option. This parser would also support --name foo bar and interpret them in the same way and as such is a convenient hybrid of the StandardOptionParser and the ListValueOptionParser for cases where you have arity 2 options that users may either express the two values as separate values or in pair style.

    You can also omit the whitespace between the name and the values 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.

    • Field Detail

      • separator

        private final char separator
    • Constructor Detail

      • MaybePairValueOptionParser

        public MaybePairValueOptionParser()
      • MaybePairValueOptionParser

        public MaybePairValueOptionParser​(char separator)
    • Method Detail

      • getValues

        protected final java.util.List<java.lang.String> getValues​(java.lang.String list)
      • parseOptions

        public ParseState<T> parseOptions​(org.apache.commons.collections4.iterators.PeekingIterator<java.lang.String> tokens,
                                          ParseState<T> state,
                                          java.util.List<OptionMetadata> allowedOptions)
        Description copied from interface: OptionParser
        Parses one/more options from the token stream
        Parameters:
        tokens - Tokens
        state - Current parser state
        allowedOptions - 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