Package: org.grails.build.parsing

## [Java] Class CommandLineParser

- org.grails.build.parsing.CommandLineParser

- Command line parser that parses arguments to the command line. Written as a replacement for Commons CLI because it doesn't support unknown arguments and requires all arguments to be declared up front. It also doesn't support command options with hyphens. This class gets around those problems.

  Authors:
    Graeme Rocher
  Since:
    2.0

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `void` | `addOption(java.lang.String name, java.lang.String description)` Adds a declared option
    `` | `protected DefaultCommandLine` | `createCommandLine()`
    `` | `static CommandLine` | `getCurrentCommandLine()`
    `` | `java.lang.String` | `getOptionsHelpMessage()`
    `` | `CommandLine` | `parse(java.lang.String... args)` Parses the given list of command line arguments.
    `` | `CommandLine` | `parse(DefaultCommandLine cl, java.lang.String[] args)`
    `` | `CommandLine` | `parseString(java.lang.String string)` Parses a string of all the command line options converting them into an array of arguments to pass to #parse(String..args)
    `` | `CommandLine` | `parseString(java.lang.String commandName, java.lang.String args)` Parses a string of all the command line options converting them into an array of arguments to pass to #parse(String..args)
    `` | `protected java.lang.String` | `processOption(DefaultCommandLine cl, java.lang.String arg)`
    `` | `protected void` | `processSystemArg(DefaultCommandLine cl, java.lang.String arg)`
    `` | `static java.lang.String[]` | `translateCommandline(java.lang.String toProcess)` Crack a command line.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Method Detail

    - #### public void addOption(java.lang.String name, java.lang.String description)

      Adds a declared option

      Parameters:
        `name` - The name of the option
        `description` - The description

    - #### protected DefaultCommandLine createCommandLine()

    - #### public static CommandLine getCurrentCommandLine()

    - #### public java.lang.String getOptionsHelpMessage()

    - #### public CommandLine parse(java.lang.String... args)

      Parses the given list of command line arguments. Arguments starting with -D become system properties, arguments starting with -- or - become either declared or undeclared options. All other arguments are put into a list of remaining arguments

      Parameters:
        `args` - The arguments
      Returns:
        The command line state

    - #### public CommandLine parse(DefaultCommandLine cl, java.lang.String[] args)

    - #### public CommandLine parseString(java.lang.String string)

      Parses a string of all the command line options converting them into an array of arguments to pass to #parse(String..args)

      Parameters:
        `string` - The string
      Returns:
        The command line

    - #### public CommandLine parseString(java.lang.String commandName, java.lang.String args)

      Parses a string of all the command line options converting them into an array of arguments to pass to #parse(String..args)

      Parameters:
        `commandName` - The command name
        `args` - The string
      Returns:
        The command line

    - #### protected java.lang.String processOption(DefaultCommandLine cl, java.lang.String arg)

    - #### protected void processSystemArg(DefaultCommandLine cl, java.lang.String arg)

    - #### public static java.lang.String[] translateCommandline(java.lang.String toProcess)

      Crack a command line.

      Parameters:
        `toProcess` - the command line to process.
      Returns:
        the command line broken into strings. An empty or null toProcess parameter results in a zero sized array.