Class CommandLine.ParseResult
- java.lang.Object
-
- picocli.CommandLine.ParseResult
-
- Enclosing class:
- CommandLine
public static class CommandLine.ParseResult extends java.lang.ObjectEncapsulates the result of parsing an array of command line arguments.- Since:
- 3.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCommandLine.ParseResult.BuilderBuilds immutableParseResultinstances.static classCommandLine.ParseResult.GroupMatchA group's multiplicity specifies how many matches of a group may appear on the command line.static classCommandLine.ParseResult.GroupMatchContainerProvides information about anCommandLine.ArgGroupthat was matched on the command line.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<CommandLine>asCommandLineList()Returns thisParseResultas a list ofCommandLineobjects, one for each matched command/subcommand.static CommandLine.ParseResult.Builderbuilder(CommandLine.Model.CommandSpec commandSpec)Creates and returns a newParseResult.Builderfor the specified command spec.CommandLine.Model.CommandSpeccommandSpec()Returns theCommandSpecfor the matched command.java.util.List<java.lang.Exception>errors()IfCommandLine.Model.ParserSpec.collectErrorsistrue, returns the list of exceptions that were encountered during parsing, otherwise, returns an empty list.java.util.List<java.lang.String>expandedArgs()Returns the command line arguments after @-files were expanded; these are the arguments that were actually parsed.java.util.List<CommandLine.ParseResult.GroupMatchContainer>findMatches(CommandLine.Model.ArgGroupSpec group)Returns the matches for the specified argument group.java.util.List<CommandLine.ParseResult.GroupMatch>getGroupMatches()Returns the top-level container for theArgGroupSpecmatch or matches found.booleanhasMatchedOption(char shortName)Returns whether an option whose aliases include the specified short name was matched on the command line.booleanhasMatchedOption(java.lang.String name)Returns whether an option whose aliases include the specified name was matched on the command line.booleanhasMatchedOption(CommandLine.Model.OptionSpec option)Returns whether the specified option was matched on the command line.booleanhasMatchedPositional(int position)Returns whether a positional parameter was matched at the specified position.booleanhasMatchedPositional(CommandLine.Model.PositionalParamSpec positional)Returns whether the specified positional parameter was matched on the command line.booleanhasSubcommand()Returnstrueif a subcommand was matched on the command line,falseotherwise.booleanisUsageHelpRequested()Returnstrueif one of the options that was matched on the command line is ausageHelpoption.booleanisVersionHelpRequested()Returnstrueif one of the options that was matched on the command line is aversionHelpoption.java.util.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.OptionSpecmatchedOption(char shortName)Returns the option with the specified short name, ornullif no option with that name was matched on the command line.CommandLine.Model.OptionSpecmatchedOption(java.lang.String name)Returns the option with the specified name, ornullif no option with that name was matched on the command line.java.util.List<CommandLine.Model.OptionSpec>matchedOptions()Returns a list of matched options, in order they were matched on the command line.java.util.Set<CommandLine.Model.OptionSpec>matchedOptionsSet()Returns a set of matched options.<T> TmatchedOptionValue(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> TmatchedOptionValue(java.lang.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.PositionalParamSpecmatchedPositional(int position)Returns the firstPositionalParamSpecthat matched an argument at the specified position, ornullif no positional parameters were matched at that position.java.util.List<CommandLine.Model.PositionalParamSpec>matchedPositionals()Returns a list of matched positional parameters, in order they were matched on the command line.java.util.List<CommandLine.Model.PositionalParamSpec>matchedPositionals(int position)Returns allPositionalParamSpecobjects that matched an argument at the specified position, or an empty list if no positional parameters were matched at that position.java.util.Set<CommandLine.Model.PositionalParamSpec>matchedPositionalsSet()Returns a set of matched positional parameters.<T> TmatchedPositionalValue(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.java.util.List<java.lang.String>originalArgs()Returns the original command line arguments that were passed to theCommandLine.parseArgs(String...)method, before @-file expansion.CommandLine.ParseResultsubcommand()Returns theParseResultfor the last subcommand of this command that was matched on the command line, ornullif no subcommand was matched.java.util.List<CommandLine.ParseResult>subcommands()Returns a list with theParseResultobjects for each subcommand of this command that was matched on the command line or an empty list if no subcommands were matched.java.util.List<java.lang.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.Builderfor the specified command spec.
-
findMatches
public java.util.List<CommandLine.ParseResult.GroupMatchContainer> findMatches(CommandLine.Model.ArgGroupSpec group)
Returns the matches for the specified argument group.- Since:
- 4.0
-
getGroupMatches
public java.util.List<CommandLine.ParseResult.GroupMatch> getGroupMatches()
Returns the top-level container for theArgGroupSpecmatch 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
matchto capture the values. Usually this results in aParameterExceptionbeing thrown by theparsemethod, 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, ornullif no option with that name was matched on the command line.Use
getValueon the returnedOptionSpecto get the matched value (or values), converted to the type of the option. Alternatively, usestringValuesto get the matched String values after they were split into parts, ororiginalStringValuesto 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(java.lang.String name)
Returns the option with the specified name, ornullif no option with that name was matched on the command line.Use
getValueon the returnedOptionSpecto get the matched value (or values), converted to the type of the option. Alternatively, usestringValuesto get the matched String values after they were split into parts, ororiginalStringValuesto 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 firstPositionalParamSpecthat matched an argument at the specified position, ornullif no positional parameters were matched at that position.
-
matchedPositionals
public java.util.List<CommandLine.Model.PositionalParamSpec> matchedPositionals(int position)
Returns allPositionalParamSpecobjects 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 theCommandSpecfor 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(java.lang.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 java.util.Set<CommandLine.Model.OptionSpec> matchedOptionsSet()
Returns a set of matched options.- Since:
- 4.0
-
matchedOptions
public java.util.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 sameOptionSpecmultiple times, if the option was matched multiple times on the command line.
-
matchedPositionalsSet
public java.util.Set<CommandLine.Model.PositionalParamSpec> matchedPositionalsSet()
Returns a set of matched positional parameters.- Since:
- 4.0
-
matchedPositionals
public java.util.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 samePositionalParamSpecmultiple times, if the parameter was matched multiple times on the command line.
-
matchedArgs
public java.util.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 anOptionSpecorPositionalParamSpecmultiple times, if the option or parameter was matched multiple times on the command line.- Since:
- 4.0
-
unmatched
public java.util.List<java.lang.String> unmatched()
Returns a list of command line arguments that did not match any options or positional parameters.
-
originalArgs
public java.util.List<java.lang.String> originalArgs()
Returns the original command line arguments that were passed to theCommandLine.parseArgs(String...)method, before @-file expansion.- See Also:
expandedArgs()
-
expandedArgs
public java.util.List<java.lang.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 java.util.List<java.lang.Exception> errors()
IfCommandLine.Model.ParserSpec.collectErrorsistrue, 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(java.lang.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()
Returnstrueif a subcommand was matched on the command line,falseotherwise.
-
subcommand
public CommandLine.ParseResult subcommand()
Returns theParseResultfor the last subcommand of this command that was matched on the command line, ornullif no subcommand was matched.
-
subcommands
public java.util.List<CommandLine.ParseResult> subcommands()
Returns a list with theParseResultobjects 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'ssubcommandsRepeatableattribute istrue.- Since:
- 4.2
-
isUsageHelpRequested
public boolean isUsageHelpRequested()
Returnstrueif one of the options that was matched on the command line is ausageHelpoption.
-
isVersionHelpRequested
public boolean isVersionHelpRequested()
Returnstrueif one of the options that was matched on the command line is aversionHelpoption.
-
asCommandLineList
public java.util.List<CommandLine> asCommandLineList()
Returns thisParseResultas a list ofCommandLineobjects, 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
-
-