## org.apache.tools.ant.taskdefs
Class PumpStreamHandler

    java.lang.Object
      org.apache.tools.ant.taskdefs.PumpStreamHandler

All Implemented Interfaces:
  ExecuteStreamHandler

Direct Known Subclasses:
  JUnitTask.JUnitLogStreamHandler, LogStreamHandler

    public class PumpStreamHandler

extends java.lang.Object
implements ExecuteStreamHandler

Copies standard output and error of subprocesses to standard output and error of the parent process.

Since:
  Ant 1.2

Constructor Summary
`PumpStreamHandler()` Construct a new `PumpStreamHandler`.
`PumpStreamHandler(java.io.OutputStream outAndErr)` Construct a new `PumpStreamHandler`.
`PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err)` Construct a new `PumpStreamHandler`.
`PumpStreamHandler(java.io.OutputStream out, java.io.OutputStream err, java.io.InputStream input)` Construct a new `PumpStreamHandler`.

Method Summary
`protected void` `createProcessErrorPump(java.io.InputStream is, java.io.OutputStream os)` Create the pump to handle error output.
`protected void` `createProcessOutputPump(java.io.InputStream is, java.io.OutputStream os)` Create the pump to handle process output.
`protected java.lang.Thread` `createPump(java.io.InputStream is, java.io.OutputStream os)` Creates a stream pumper to copy the given input stream to the given output stream.
`protected java.lang.Thread` `createPump(java.io.InputStream is, java.io.OutputStream os, boolean closeWhenExhausted)` Creates a stream pumper to copy the given input stream to the given output stream.
`protected java.io.OutputStream` `getErr()` Get the error stream.
`protected java.io.OutputStream` `getOut()` Get the output stream.
`void` `setProcessErrorStream(java.io.InputStream is)` Set the `InputStream` from which to read the standard error of the process.
`void` `setProcessInputStream(java.io.OutputStream os)` Set the `OutputStream` by means of which input can be sent to the process.
`void` `setProcessOutputStream(java.io.InputStream is)` Set the `InputStream` from which to read the standard output of the process.
`void` `start()` Start the `Thread`s.
`void` `stop()` Stop pumping the streams.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PumpStreamHandler

    public PumpStreamHandler(java.io.OutputStream out,
                             java.io.OutputStream err,
                             java.io.InputStream input)

  Construct a new `PumpStreamHandler`.

  Parameters:
    `out` - the output `OutputStream`.
    `err` - the error `OutputStream`.
    `input` - the input `InputStream`.

### PumpStreamHandler

    public PumpStreamHandler(java.io.OutputStream out,
                             java.io.OutputStream err)

  Construct a new `PumpStreamHandler`.

  Parameters:
    `out` - the output `OutputStream`.
    `err` - the error `OutputStream`.

### PumpStreamHandler

    public PumpStreamHandler(java.io.OutputStream outAndErr)

  Construct a new `PumpStreamHandler`.

  Parameters:
    `outAndErr` - the output/error `OutputStream`.

### PumpStreamHandler

    public PumpStreamHandler()

  Construct a new `PumpStreamHandler`.

Method Detail

### setProcessOutputStream

    public void setProcessOutputStream(java.io.InputStream is)

  Set the `InputStream` from which to read the standard output of the process.

  Specified by:
    `setProcessOutputStream` in interface `ExecuteStreamHandler`
  Parameters:
    `is` - the `InputStream`.

### setProcessErrorStream

    public void setProcessErrorStream(java.io.InputStream is)

  Set the `InputStream` from which to read the standard error of the process.

  Specified by:
    `setProcessErrorStream` in interface `ExecuteStreamHandler`
  Parameters:
    `is` - the `InputStream`.

### setProcessInputStream

    public void setProcessInputStream(java.io.OutputStream os)

  Set the `OutputStream` by means of which input can be sent to the process.

  Specified by:
    `setProcessInputStream` in interface `ExecuteStreamHandler`
  Parameters:
    `os` - the `OutputStream`.

### start

    public void start()

  Start the `Thread`s.

  Specified by:
    `start` in interface `ExecuteStreamHandler`

### stop

    public void stop()

  Stop pumping the streams.

  Specified by:
    `stop` in interface `ExecuteStreamHandler`

### getErr

    protected java.io.OutputStream getErr()

  Get the error stream.

  Returns:
    `OutputStream`.

### getOut

    protected java.io.OutputStream getOut()

  Get the output stream.

  Returns:
    `OutputStream`.

### createProcessOutputPump

    protected void createProcessOutputPump(java.io.InputStream is,
                                           java.io.OutputStream os)

  Create the pump to handle process output.

  Parameters:
    `is` - the `InputStream`.
    `os` - the `OutputStream`.

### createProcessErrorPump

    protected void createProcessErrorPump(java.io.InputStream is,
                                          java.io.OutputStream os)

  Create the pump to handle error output.

  Parameters:
    `is` - the input stream to copy from.
    `os` - the output stream to copy to.

### createPump

    protected java.lang.Thread createPump(java.io.InputStream is,
                                          java.io.OutputStream os)

  Creates a stream pumper to copy the given input stream to the given output stream.

  Parameters:
    `is` - the input stream to copy from.
    `os` - the output stream to copy to.
  Returns:
    a thread object that does the pumping.

### createPump

    protected java.lang.Thread createPump(java.io.InputStream is,
                                          java.io.OutputStream os,
                                          boolean closeWhenExhausted)

  Creates a stream pumper to copy the given input stream to the given output stream.

  Parameters:
    `is` - the input stream to copy from.
    `os` - the output stream to copy to.
    `closeWhenExhausted` - if true close the inputstream.
  Returns:
    a thread object that does the pumping.