picocli

## Class CommandLine.ParseResult

- java.lang.Object
- - picocli.CommandLine.ParseResult

Enclosing class:
  CommandLine

    public static class CommandLine.ParseResult
    extends Object

Encapsulates the result of parsing an array of command line arguments.

Since:
  3.0

### Nested Class Summary

Nested Classes
`static class` `CommandLine.ParseResult.Builder` Builds immutable `ParseResult` instances.
`static class` `CommandLine.ParseResult.GroupMatch` A group's multiplicity specifies how many matches of a group may appear on the command line.
`static class` `CommandLine.ParseResult.GroupMatchContainer` Provides information about an `CommandLine.ArgGroup` that was matched on the command line.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`List<CommandLine>` `asCommandLineList()` Returns this `ParseResult` as a list of `CommandLine` objects, one for each matched command/subcommand.
`static CommandLine.ParseResult.Builder` `builder(CommandLine.Model.CommandSpec commandSpec)` Creates and returns a new `ParseResult.Builder` for the specified command spec.
`CommandLine.Model.CommandSpec` `commandSpec()` Returns the `CommandSpec` for the matched command.
`List<Exception>` `errors()` If `CommandLine.Model.ParserSpec.collectErrors` is `true`, returns the list of exceptions that were encountered during parsing, otherwise, returns an empty list.
`List<CommandLine.ParseResult.GroupMatchContainer>` `findMatches(CommandLine.Model.ArgGroupSpec group)` Returns the matches for the specified argument group.
`List<CommandLine.ParseResult.GroupMatch>` `getGroupMatches()` Returns the top-level container for the `ArgGroupSpec` match or matches found.
`boolean` `hasMatchedOption(char shortName)` Returns whether an option whose aliases include the specified short name was matched on the command line.
`boolean` `hasMatchedOption(CommandLine.Model.OptionSpec option)` Returns whether the specified option was matched on the command line.
`boolean` `hasMatchedOption(String name)` Returns whether an option whose aliases include the specified name was matched on the command line.
`boolean` `hasMatchedPositional(CommandLine.Model.PositionalParamSpec positional)` Returns whether the specified positional parameter was matched on the command line.
`boolean` `hasMatchedPositional(int position)` Returns whether a positional parameter was matched at the specified position.
`boolean` `hasSubcommand()` Returns `true` if a subcommand was matched on the command line, `false` otherwise.
`boolean` `isUsageHelpRequested()` Returns `true` if one of the options that was matched on the command line is a `usageHelp` option.
`boolean` `isVersionHelpRequested()` Returns `true` if one of the options that was matched on the command line is a `versionHelp` option.
`CommandLine.Model.OptionSpec` `matchedOption(char shortName)` Returns the option with the specified short name, or `null` if no option with that name was matched on the command line.
`CommandLine.Model.OptionSpec` `matchedOption(String name)` Returns the option with the specified name, or `null` if no option with that name was matched on the command line.
`List<CommandLine.Model.OptionSpec>` `matchedOptions()` Returns a list of matched options, in the order they were found on the command line.
`<T> T` `matchedOptionValue(char shortName, T defaultValue)` Returns the command line argument value of the option with the specified name, converted to the type of the option, or the specified default value if no option with the specified name was matched.
`<T> T` `matchedOptionValue(String name, T defaultValue)` Returns the command line argument value of the option with the specified name, converted to the type of the option, or the specified default value if no option with the specified name was matched.
`CommandLine.Model.PositionalParamSpec` `matchedPositional(int position)` Returns the first `PositionalParamSpec` that matched an argument at the specified position, or `null` if no positional parameters were matched at that position.
`List<CommandLine.Model.PositionalParamSpec>` `matchedPositionals()` Returns a list of matched positional parameters.
`List<CommandLine.Model.PositionalParamSpec>` `matchedPositionals(int position)` Returns all `PositionalParamSpec` objects that matched an argument at the specified position, or an empty list if no positional parameters were matched at that position.
`<T> T` `matchedPositionalValue(int position, T defaultValue)` Returns the command line argument value of the positional parameter at the specified position, converted to the type of the positional parameter, or the specified default value if no positional parameter was matched at that position.
`List<String>` `originalArgs()` Returns the command line arguments that were parsed.
`CommandLine.ParseResult` `subcommand()` Returns the `ParseResult` for the subcommand of this command that was matched on the command line, or `null` if no subcommand was matched.
`List<String>` `unmatched()` Returns a list of command line arguments that did not match any options or positional parameters.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### builder

    public static CommandLine.ParseResult.Builder builder(CommandLine.Model.CommandSpec commandSpec)

Creates and returns a new `ParseResult.Builder` for the specified command spec.

#### findMatches

    public List<CommandLine.ParseResult.GroupMatchContainer> findMatches(CommandLine.Model.ArgGroupSpec group)

Returns the matches for the specified argument group.

Since:
  4.0

#### getGroupMatches

    public List<CommandLine.ParseResult.GroupMatch> getGroupMatches()

Returns the top-level container for the `ArgGroupSpec` match or matches found.

If the user input was a valid combination of group arguments, the returned list should contain a single match. Details of the matched groups encountered on the command line can be obtained via its `matchedSubgroups()` method. The top-level match returned by this method contains no matched arguments.

If the returned list contains more than one match, the user input was invalid: the maximum multiplicity of a group was exceeded, and the parser created an extra `match` to capture the values. Usually this results in a `ParameterException` being thrown by the `parse` method, unless the parser is configured to collect errors.

Since:
  4.0

#### matchedOption

    public CommandLine.Model.OptionSpec matchedOption(char shortName)

Returns the option with the specified short name, or `null` if no option with that name was matched on the command line.

Use `getValue` on the returned `OptionSpec` to get the matched value (or values), converted to the type of the option. Alternatively, use `stringValues` to get the matched String values after they were split into parts, or `originalStringValues` to get the original String values that were matched on the command line, before any processing.

To get the default value of an option that was not matched on the command line, use `parseResult.commandSpec().findOption(shortName).getValue()`.

See Also:
  `CommandLine.Model.CommandSpec.findOption(char)`

#### matchedOption

    public CommandLine.Model.OptionSpec matchedOption(String name)

Returns the option with the specified name, or `null` if no option with that name was matched on the command line.

Use `getValue` on the returned `OptionSpec` to get the matched value (or values), converted to the type of the option. Alternatively, use `stringValues` to get the matched String values after they were split into parts, or `originalStringValues` to get the original String values that were matched on the command line, before any processing.

To get the default value of an option that was not matched on the command line, use `parseResult.commandSpec().findOption(String).getValue()`.

Parameters:
  `name` - used to search the matched options. May be an alias of the option name that was actually specified on the command line. The specified name may include option name prefix characters or not.
See Also:
  `CommandLine.Model.CommandSpec.findOption(String)`

#### matchedPositional

    public CommandLine.Model.PositionalParamSpec matchedPositional(int position)

Returns the first `PositionalParamSpec` that matched an argument at the specified position, or `null` if no positional parameters were matched at that position.

#### matchedPositionals

    public List<CommandLine.Model.PositionalParamSpec> matchedPositionals(int position)

Returns all `PositionalParamSpec` objects that matched an argument at the specified position, or an empty list if no positional parameters were matched at that position.

#### commandSpec

    public CommandLine.Model.CommandSpec commandSpec()

Returns the `CommandSpec` for the matched command.

#### hasMatchedOption

    public boolean hasMatchedOption(char shortName)

Returns whether an option whose aliases include the specified short name was matched on the command line.

Parameters:
  `shortName` - used to search the matched options. May be an alias of the option name that was actually specified on the command line.

#### hasMatchedOption

    public boolean hasMatchedOption(String name)

Returns whether an option whose aliases include the specified name was matched on the command line.

Parameters:
  `name` - used to search the matched options. May be an alias of the option name that was actually specified on the command line. The specified name may include option name prefix characters or not.

#### hasMatchedOption

    public boolean hasMatchedOption(CommandLine.Model.OptionSpec option)

Returns whether the specified option was matched on the command line.

#### hasMatchedPositional

    public boolean hasMatchedPositional(int position)

Returns whether a positional parameter was matched at the specified position.

#### hasMatchedPositional

    public boolean hasMatchedPositional(CommandLine.Model.PositionalParamSpec positional)

Returns whether the specified positional parameter was matched on the command line.

#### matchedOptions

    public List<CommandLine.Model.OptionSpec> matchedOptions()

Returns a list of matched options, in the order they were found on the command line.

#### matchedPositionals

    public List<CommandLine.Model.PositionalParamSpec> matchedPositionals()

Returns a list of matched positional parameters.

#### unmatched

    public List<String> unmatched()

Returns a list of command line arguments that did not match any options or positional parameters.

#### originalArgs

    public List<String> originalArgs()

Returns the command line arguments that were parsed.

#### errors

    public List<Exception> errors()

If `CommandLine.Model.ParserSpec.collectErrors` is `true`, returns the list of exceptions that were encountered during parsing, otherwise, returns an empty list.

Since:
  3.2

#### matchedOptionValue

    public <T> T matchedOptionValue(char shortName,
                                    T defaultValue)

Returns the command line argument value of the option with the specified name, converted to the type of the option, or the specified default value if no option with the specified name was matched.

#### matchedOptionValue

    public <T> T matchedOptionValue(String name,
                                    T defaultValue)

Returns the command line argument value of the option with the specified name, converted to the type of the option, or the specified default value if no option with the specified name was matched.

#### matchedPositionalValue

    public <T> T matchedPositionalValue(int position,
                                        T defaultValue)

Returns the command line argument value of the positional parameter at the specified position, converted to the type of the positional parameter, or the specified default value if no positional parameter was matched at that position.

#### hasSubcommand

    public boolean hasSubcommand()

Returns `true` if a subcommand was matched on the command line, `false` otherwise.

#### subcommand

    public CommandLine.ParseResult subcommand()

Returns the `ParseResult` for the subcommand of this command that was matched on the command line, or `null` if no subcommand was matched.

#### isUsageHelpRequested

    public boolean isUsageHelpRequested()

Returns `true` if one of the options that was matched on the command line is a `usageHelp` option.

#### isVersionHelpRequested

    public boolean isVersionHelpRequested()

Returns `true` if one of the options that was matched on the command line is a `versionHelp` option.

#### asCommandLineList

    public List<CommandLine> asCommandLineList()

Returns this `ParseResult` as a list of `CommandLine` objects, one for each matched command/subcommand. For backwards compatibility with pre-3.0 methods.