- 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 Modifier and Type Class Description static class
CommandLine.ParseResult.Builder
Builds immutableParseResult
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 anCommandLine.ArgGroup
that was matched on the command line.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description List<CommandLine>
asCommandLineList()
Returns thisParseResult
as a list ofCommandLine
objects, one for each matched command/subcommand.static CommandLine.ParseResult.Builder
builder(CommandLine.Model.CommandSpec commandSpec)
Creates and returns a newParseResult.Builder
for the specified command spec.CommandLine.Model.CommandSpec
commandSpec()
Returns theCommandSpec
for the matched command.List<Exception>
errors()
IfCommandLine.Model.ParserSpec.collectErrors
istrue
, returns the list of exceptions that were encountered during parsing, otherwise, returns an empty list.List<String>
expandedArgs()
Returns the command line arguments after @-files were expanded; these are the arguments that were actually parsed.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 theArgGroupSpec
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(String name)
Returns whether an option whose aliases include the specified 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
hasMatchedPositional(int position)
Returns whether a positional parameter was matched at the specified position.boolean
hasMatchedPositional(CommandLine.Model.PositionalParamSpec positional)
Returns whether the specified positional parameter was matched on the command line.boolean
hasSubcommand()
Returnstrue
if a subcommand was matched on the command line,false
otherwise.boolean
isUsageHelpRequested()
Returnstrue
if one of the options that was matched on the command line is ausageHelp
option.boolean
isVersionHelpRequested()
Returnstrue
if one of the options that was matched on the command line is aversionHelp
option.List<CommandLine.Model.ArgSpec>
matchedArgs()
Returns a list of matched options and positional parameters, in order they were matched on the command line.CommandLine.Model.OptionSpec
matchedOption(char shortName)
Returns the option with the specified short name, ornull
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, ornull
if no option with that name was matched on the command line.List<CommandLine.Model.OptionSpec>
matchedOptions()
Returns a list of matched options, in order they were matched on the command line.Set<CommandLine.Model.OptionSpec>
matchedOptionsSet()
Returns a set of matched options.<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 firstPositionalParamSpec
that matched an argument at the specified position, ornull
if no positional parameters were matched at that position.List<CommandLine.Model.PositionalParamSpec>
matchedPositionals()
Returns a list of matched positional parameters, in order they were matched on the command line.List<CommandLine.Model.PositionalParamSpec>
matchedPositionals(int position)
Returns allPositionalParamSpec
objects that matched an argument at the specified position, or an empty list if no positional parameters were matched at that position.Set<CommandLine.Model.PositionalParamSpec>
matchedPositionalsSet()
Returns a set of matched positional parameters.<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 original command line arguments that were passed to theCommandLine.parseArgs(String...)
method, before @-file expansion.CommandLine.ParseResult
subcommand()
Returns theParseResult
for the last subcommand of this command that was matched on the command line, ornull
if no subcommand was matched.List<CommandLine.ParseResult>
subcommands()
Returns a list with theParseResult
objects for each subcommand of this command that was matched on the command line or an empty list if no subcommands were matched.List<String>
unmatched()
Returns a list of command line arguments that did not match any options or positional parameters.
-
-
-
Method Detail
-
builder
public static CommandLine.ParseResult.Builder builder(CommandLine.Model.CommandSpec commandSpec)
Creates and returns a newParseResult.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 theArgGroupSpec
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 aParameterException
being thrown by theparse
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, ornull
if no option with that name was matched on the command line.Use
getValue
on the returnedOptionSpec
to get the matched value (or values), converted to the type of the option. Alternatively, usestringValues
to get the matched String values after they were split into parts, ororiginalStringValues
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 notmatched on the command line, use
parseResult.commandSpec().findOption(shortName).getValue()
.
-
matchedOption
public CommandLine.Model.OptionSpec matchedOption(String name)
Returns the option with the specified name, ornull
if no option with that name was matched on the command line.Use
getValue
on the returnedOptionSpec
to get the matched value (or values), converted to the type of the option. Alternatively, usestringValues
to get the matched String values after they were split into parts, ororiginalStringValues
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 notmatched 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 firstPositionalParamSpec
that matched an argument at the specified position, ornull
if no positional parameters were matched at that position.
-
matchedPositionals
public List<CommandLine.Model.PositionalParamSpec> matchedPositionals(int position)
Returns allPositionalParamSpec
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 theCommandSpec
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.
-
matchedOptionsSet
public Set<CommandLine.Model.OptionSpec> matchedOptionsSet()
Returns a set of matched options.- Since:
- 4.0
-
matchedOptions
public List<CommandLine.Model.OptionSpec> matchedOptions()
Returns a list of matched options, in order they were matched on the command line. The returned list may contain the sameOptionSpec
multiple times, if the option was matched multiple times on the command line.
-
matchedPositionalsSet
public Set<CommandLine.Model.PositionalParamSpec> matchedPositionalsSet()
Returns a set of matched positional parameters.- Since:
- 4.0
-
matchedPositionals
public List<CommandLine.Model.PositionalParamSpec> matchedPositionals()
Returns a list of matched positional parameters, in order they were matched on the command line. The returned list may contain the samePositionalParamSpec
multiple times, if the parameter was matched multiple times on the command line.
-
matchedArgs
public List<CommandLine.Model.ArgSpec> matchedArgs()
Returns a list of matched options and positional parameters, in order they were matched on the command line. The returned list may contain anOptionSpec
orPositionalParamSpec
multiple times, if the option or parameter was matched multiple times on the command line.- Since:
- 4.0
-
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 original command line arguments that were passed to theCommandLine.parseArgs(String...)
method, before @-file expansion.- See Also:
expandedArgs()
-
expandedArgs
public List<String> expandedArgs()
Returns the command line arguments after @-files were expanded; these are the arguments that were actually parsed.- Since:
- 4.4
- See Also:
originalArgs()
-
errors
public List<Exception> errors()
IfCommandLine.Model.ParserSpec.collectErrors
istrue
, 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()
Returnstrue
if a subcommand was matched on the command line,false
otherwise.
-
subcommand
public CommandLine.ParseResult subcommand()
Returns theParseResult
for the last subcommand of this command that was matched on the command line, ornull
if no subcommand was matched.
-
subcommands
public List<CommandLine.ParseResult> subcommands()
Returns a list with theParseResult
objects for each subcommand of this command that was matched on the command line or an empty list if no subcommands were matched. The returned list can only contain multiple values if this command'ssubcommandsRepeatable
attribute istrue
.- Since:
- 4.2
-
isUsageHelpRequested
public boolean isUsageHelpRequested()
Returnstrue
if one of the options that was matched on the command line is ausageHelp
option.
-
isVersionHelpRequested
public boolean isVersionHelpRequested()
Returnstrue
if one of the options that was matched on the command line is aversionHelp
option.
-
asCommandLineList
public List<CommandLine> asCommandLineList()
Returns thisParseResult
as a list ofCommandLine
objects, one for each matched command/subcommand. Note that for repeatable subcommands, there may be multiple commands at each level of the hierarchy in the returned list.- Since:
- 3.0
-
-