Class CommandLine.ParseResult

java.lang.Object
nz.org.riskscape.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
  • Method Details

    • builder

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

      Returns the matches for the specified argument group.

    • 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.

    • 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:
    • 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:
    • 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.
    • 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 same OptionSpec 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 same PositionalParamSpec 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 an OptionSpec or PositionalParamSpec 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 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.
      Since:
      3.0