DefaultParser
Date: 2017-04-22

org.apache.commons.cli

## Class DefaultParser

- java.lang.Object
- - org.apache.commons.cli.DefaultParser

- All Implemented Interfaces:
    CommandLineParser

      public class DefaultParser
      extends java.lang.Object
      implements CommandLineParser

  Default parser.
  Since:
    1.3

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected CommandLine` | `cmd` The command-line instance.
    `protected Option` | `currentOption` The last option parsed.
    `protected java.lang.String` | `currentToken` The token currently processed.
    `protected java.util.List` | `expectedOpts` The required options and groups expected to be found when parsing the command line.
    `protected Options` | `options` The current options.
    `protected boolean` | `skipParsing` Flag indicating if tokens should no longer be analyzed and simply added as arguments of the command line.
    `protected boolean` | `stopAtNonOption` Flag indicating how unrecognized tokens are handled.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultParser()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `handleConcatenatedOptions(java.lang.String token)` Breaks `token` into its constituent parts using the following algorithm.
    `CommandLine` | `parse(Options options, java.lang.String[] arguments)` Parse the arguments according to the specified options.
    `CommandLine` | `parse(Options options, java.lang.String[] arguments, boolean stopAtNonOption)` Parse the arguments according to the specified options.
    `CommandLine` | `parse(Options options, java.lang.String[] arguments, java.util.Properties properties)` Parse the arguments according to the specified options and properties.
    `CommandLine` | `parse(Options options, java.lang.String[] arguments, java.util.Properties properties, boolean stopAtNonOption)` Parse the arguments according to the specified options and properties.

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

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

- - ### Field Detail

    - #### cmd

          protected CommandLine cmd

      The command-line instance.

    - #### options

          protected Options options

      The current options.

    - #### stopAtNonOption

          protected boolean stopAtNonOption

      Flag indicating how unrecognized tokens are handled. `true` to stop the parsing and add the remaining tokens to the args list. `false` to throw an exception.

    - #### currentToken

          protected java.lang.String currentToken

      The token currently processed.

    - #### currentOption

          protected Option currentOption

      The last option parsed.

    - #### skipParsing

          protected boolean skipParsing

      Flag indicating if tokens should no longer be analyzed and simply added as arguments of the command line.

    - #### expectedOpts

          protected java.util.List expectedOpts

      The required options and groups expected to be found when parsing the command line.

  - ### Constructor Detail

    - #### DefaultParser

          public DefaultParser()

  - ### Method Detail

    - #### parse

          public CommandLine parse(Options options,
                          java.lang.String[] arguments)
                            throws ParseException

      Description copied from interface: `CommandLineParser`
      Parse the arguments according to the specified options.
      Specified by:
        `parse` in interface `CommandLineParser`
      Parameters:
        `options` - the specified Options
        `arguments` - the command line arguments
      Returns:
        the list of atomic option and value tokens
      Throws:
        `ParseException` - if there are any problems encountered while parsing the command line tokens.

    - #### parse

          public CommandLine parse(Options options,
                          java.lang.String[] arguments,
                          java.util.Properties properties)
                            throws ParseException

      Parse the arguments according to the specified options and properties.
      Parameters:
        `options` - the specified Options
        `arguments` - the command line arguments
        `properties` - command line option name-value pairs
      Returns:
        the list of atomic option and value tokens
      Throws:
        `ParseException` - if there are any problems encountered while parsing the command line tokens.

    - #### parse

          public CommandLine parse(Options options,
                          java.lang.String[] arguments,
                          boolean stopAtNonOption)
                            throws ParseException

      Description copied from interface: `CommandLineParser`
      Parse the arguments according to the specified options.
      Specified by:
        `parse` in interface `CommandLineParser`
      Parameters:
        `options` - the specified Options
        `arguments` - the command line arguments
        `stopAtNonOption` - if `true` an unrecognized argument stops the parsing and the remaining arguments are added to the `CommandLine`s args list. If `false` an unrecognized argument triggers a ParseException.
      Returns:
        the list of atomic option and value tokens
      Throws:
        `ParseException` - if there are any problems encountered while parsing the command line tokens.

    - #### parse

          public CommandLine parse(Options options,
                          java.lang.String[] arguments,
                          java.util.Properties properties,
                          boolean stopAtNonOption)
                            throws ParseException

      Parse the arguments according to the specified options and properties.
      Parameters:
        `options` - the specified Options
        `arguments` - the command line arguments
        `properties` - command line option name-value pairs
        `stopAtNonOption` - if `true` an unrecognized argument stops the parsing and the remaining arguments are added to the `CommandLine`s args list. If `false` an unrecognized argument triggers a ParseException.
      Returns:
        the list of atomic option and value tokens
      Throws:
        `ParseException` - if there are any problems encountered while parsing the command line tokens.

    - #### handleConcatenatedOptions

          protected void handleConcatenatedOptions(java.lang.String token)
                                            throws ParseException

      Breaks `token` into its constituent parts using the following algorithm.
      - ignore the first character ("-")
      - for each remaining character check if an `Option` exists with that id.
      - if an `Option` does exist then add that character prepended with "-" to the list of processed tokens.
      - if the `Option` can have an argument value and there are remaining characters in the token then add the remaining characters as a token to the list of processed tokens.
      - if an `Option` does NOT exist AND `stopAtNonOption` IS set then add the special token "--" followed by the remaining characters and also the remaining tokens directly to the processed tokens list.
      - if an `Option` does NOT exist AND `stopAtNonOption` IS NOT set then add that character prepended with "-".
      Parameters:
        `token` - The current token to be burst at the first non-Option encountered.
      Throws:
        `ParseException` - if there are any problems encountered while parsing the command line token.