CommandLine
Date: 2017-01-22

org.apache.commons.exec

## Class CommandLine

- java.lang.Object
- - org.apache.commons.exec.CommandLine

-     public class CommandLine
      extends java.lang.Object

  CommandLine objects help handling command lines specifying processes to execute. The class can be used to a command line by an application.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CommandLine(CommandLine other)` Copy constructor.
    `CommandLine(java.io.File executable)` Create a command line without any arguments.
    `CommandLine(java.lang.String executable)` Create a command line without any arguments.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `CommandLine` | `addArgument(java.lang.String argument)` Add a single argument.
    `CommandLine` | `addArgument(java.lang.String argument, boolean handleQuoting)` Add a single argument.
    `CommandLine` | `addArguments(java.lang.String addArguments)` Add multiple arguments.
    `CommandLine` | `addArguments(java.lang.String[] addArguments)` Add multiple arguments.
    `CommandLine` | `addArguments(java.lang.String[] addArguments, boolean handleQuoting)` Add multiple arguments.
    `CommandLine` | `addArguments(java.lang.String addArguments, boolean handleQuoting)` Add multiple arguments.
    `java.lang.String[]` | `getArguments()` Returns the expanded and quoted command line arguments.
    `java.lang.String` | `getExecutable()` Returns the executable.
    `java.util.Map<java.lang.String,?>` | `getSubstitutionMap()`
    `boolean` | `isFile()` Was a file being used to set the executable?
    `static CommandLine` | `parse(java.lang.String line)` Create a command line from a string.
    `static CommandLine` | `parse(java.lang.String line, java.util.Map<java.lang.String,?> substitutionMap)` Create a command line from a string.
    `void` | `setSubstitutionMap(java.util.Map<java.lang.String,?> substitutionMap)` Set the substitutionMap to expand variables in the command line.
    `java.lang.String` | `toString()` Stringify operator returns the command line as a string.
    `java.lang.String[]` | `toStrings()` Returns the command line as an array of strings.

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

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

- - ### Constructor Detail

    - #### CommandLine

          public CommandLine(java.lang.String executable)

      Create a command line without any arguments.
      Parameters:
        `executable` - the executable

    - #### CommandLine

          public CommandLine(java.io.File executable)

      Create a command line without any arguments.
      Parameters:
        `executable` - the executable file

    - #### CommandLine

          public CommandLine(CommandLine other)

      Copy constructor.
      Parameters:
        `other` - the instance to copy

  - ### Method Detail

    - #### parse

          public static CommandLine parse(java.lang.String line)

      Create a command line from a string.
      Parameters:
        `line` - the first element becomes the executable, the rest the arguments
      Returns:
        the parsed command line
      Throws:
        `java.lang.IllegalArgumentException` - If line is null or all whitespace

    - #### parse

          public static CommandLine parse(java.lang.String line,
                          java.util.Map<java.lang.String,?> substitutionMap)

      Create a command line from a string.
      Parameters:
        `line` - the first element becomes the executable, the rest the arguments
        `substitutionMap` - the name/value pairs used for substitution
      Returns:
        the parsed command line
      Throws:
        `java.lang.IllegalArgumentException` - If line is null or all whitespace

    - #### getExecutable

          public java.lang.String getExecutable()

      Returns the executable.
      Returns:
        The executable

    - #### isFile

          public boolean isFile()

      Was a file being used to set the executable?
      Returns:
        true if a file was used for setting the executable

    - #### addArguments

          public CommandLine addArguments(java.lang.String[] addArguments)

      Add multiple arguments. Handles parsing of quotes and whitespace.
      Parameters:
        `addArguments` - An array of arguments
      Returns:
        The command line itself

    - #### addArguments

          public CommandLine addArguments(java.lang.String[] addArguments,
                                 boolean handleQuoting)

      Add multiple arguments.
      Parameters:
        `addArguments` - An array of arguments
        `handleQuoting` - Add the argument with/without handling quoting
      Returns:
        The command line itself

    - #### addArguments

          public CommandLine addArguments(java.lang.String addArguments)

      Add multiple arguments. Handles parsing of quotes and whitespace. Please note that the parsing can have undesired side-effects therefore it is recommended to build the command line incrementally.
      Parameters:
        `addArguments` - An string containing multiple arguments.
      Returns:
        The command line itself

    - #### addArguments

          public CommandLine addArguments(java.lang.String addArguments,
                                 boolean handleQuoting)

      Add multiple arguments. Handles parsing of quotes and whitespace. Please note that the parsing can have undesired side-effects therefore it is recommended to build the command line incrementally.
      Parameters:
        `addArguments` - An string containing multiple arguments.
        `handleQuoting` - Add the argument with/without handling quoting
      Returns:
        The command line itself

    - #### addArgument

          public CommandLine addArgument(java.lang.String argument)

      Add a single argument. Handles quoting.
      Parameters:
        `argument` - The argument to add
      Returns:
        The command line itself
      Throws:
        `java.lang.IllegalArgumentException` - If argument contains both single and double quotes

    - #### addArgument

          public CommandLine addArgument(java.lang.String argument,
                                boolean handleQuoting)

      Add a single argument.
      Parameters:
        `argument` - The argument to add
        `handleQuoting` - Add the argument with/without handling quoting
      Returns:
        The command line itself

    - #### getArguments

          public java.lang.String[] getArguments()

      Returns the expanded and quoted command line arguments.
      Returns:
        The quoted arguments

    - #### getSubstitutionMap

          public java.util.Map<java.lang.String,?> getSubstitutionMap()

      Returns:
        the substitution map

    - #### setSubstitutionMap

          public void setSubstitutionMap(java.util.Map<java.lang.String,?> substitutionMap)

      Set the substitutionMap to expand variables in the command line.
      Parameters:
        `substitutionMap` - the map

    - #### toStrings

          public java.lang.String[] toStrings()

      Returns the command line as an array of strings.
      Returns:
        The command line as an string array

    - #### toString

          public java.lang.String toString()

      Stringify operator returns the command line as a string. Parameters are correctly quoted when containing a space or left untouched if the are already quoted.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        the command line as single string