Package picocli

Class 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 Detail

      • 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 notmatched 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 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 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.
      • 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 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.
      • 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.
      • 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 last subcommand of this command that was matched on the command line, or null if no subcommand was matched.
      • subcommands

        public List<CommandLine.ParseResult> subcommands()
        Returns a list with the ParseResult 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's subcommandsRepeatable attribute is true.
        Since:
        4.2
      • 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. Note that for repeatable subcommands, there may be multiple commands at each level of the hierarchy in the returned list.
        Since:
        3.0