Commandline objects help handling command lines specifying processes to execute.

The class can be used to define a command line as nested elements or as a helper to define a command line by an application.

<

p>

    <someelement>

      <acommandline executable="/executable/to/run">

        <argument value="argument 1" />

        <argument line="argument_1 argument_2 argument_3" />

        <argument value="argument 4" />

      </acommandline>

    </someelement>

The element

    someelement

must provide a method

    createAcommandline

which returns an instance of this class.

author | thomas.haas@softwired-inc.com
author | <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a>
package | phing.types

### Methods

## __construct()

    __construct($to_process)

### Parameters

#### $to_process

## __copy()

    __copy()

## __toString()

    __toString()

## addArguments()

    addArguments($line)

### Parameters

#### $line

## Clear out the whole command line.

    clear()

## Clear out the arguments but leave the executable in place for another operation.

    clearArgs()

## Creates an argument object and adds it to our list of args.

    createArgument(boolean $insertAtStart) : \CommandlineArgument

Each commandline object has at most one instance of the argument class.

### Parameters

#### $insertAtStart

`boolean`

if true, the argument is inserted at the beginning of the list of args, otherwise it is appended.

### Returns

`\CommandlineArgument`

## Return a marker.

    createMarker() : \CommandlineMarker

This marker can be used to locate a position on the commandline - to insert something for example - when all parameters have been set.

### Returns

`\CommandlineMarker`

## Returns a String that describes the command and arguments suitable for verbose output before a call to <code>Runtime.exec(String[])</code>.

    describeCommand(array $args) : string

This method assumes that the first entry in the array is the executable to run.

### Parameters

#### $args

`array`

CommandlineArgument[] to use

### Returns

`string`

## Returns all arguments defined by <code>addLine</code>, <code>addValue</code> or the argument object.

    getArguments()

## Returns the executable and all defined arguments.

    getCommandline() : array

### Returns

`array`

## getExecutable()

    getExecutable()

## Put quotes around the given String if necessary.

    quoteArgument($argument, $escape)

Static

If the argument doesn't include spaces or quotes, return it as is. If it contains double quotes, use single quotes - else surround the argument by double quotes.

exception | BuildException if the argument contains both, single and double quotes.

### Parameters

#### $argument

#### $escape

## Sets the executable to run.

    setExecutable($executable)

### Parameters

#### $executable

## size()

    size() : int

### Returns

`int`Number of components in current commandline.

## Quotes the parts of the given array in way that makes them usable as command line arguments.

    toString($lines, $escape)

Static

### Parameters

#### $lines

#### $escape

## translateCommandline()

    translateCommandline(string $to_process) : array

Static

### Parameters

#### $to_process

`string`

### Returns

`array`

## Returns a String that describes the arguments suitable for verbose output before a call to <code>Runtime.exec(String[])</code>

    describeArguments($args, $offset) : string

### Parameters

#### $args

arguments to use (default is to use current class args)

#### $offset

ignore entries before this index

### Returns

`string`

### Properties

## CommandlineArguments[]

    $arguments : array

##

    $executable : string

### Constants

## DISCLAIMER

    DISCLAIMER