org.apache.uima.pear.util

## Class ProcessUtil.Runner

- java.lang.Object
- - org.apache.uima.pear.util.ProcessUtil.Runner

- All Implemented Interfaces:
    Runnable
  Enclosing class:
    ProcessUtil

      public static class ProcessUtil.Runner
      extends Object
      implements Runnable

  The `ProcessUtil.Runner` class allows collecting, printing and distributing console output (stdout and stderr) of the specified `Process` without blocking the caller. It allows adding standard stream listeners to receive messages printed to the console by selected process.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Runner(Process aProcess)` Constructor that takes a given `Process` object and assigns default process name.
    `Runner(Process aProcess, String procName)` Constructor that takes a given `Process` object and a given process name.
    `Runner(Process aProcess, String procName, boolean printToConsole)` Constructor that takes a given `Process` object, a given process name, and a given `boolean` flag that enables/disables console printing.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addStreamListener(ProcessUtil.StdStreamListener listener)` Adds a given object, implementing the `StdStreamListener` interface to the list of standard stream listeners.
    `String` | `getErrOutput()`
    `int` | `getExitCode()`
    `Process` | `getProcess()`
    `String` | `getStdOutput()`
    `void` | `removeListener(ProcessUtil.StdStreamListener listener)` Removes a given `StdStreamListener` object from the list of standard stream listeners.
    `void` | `run()` Implements the `Runnable.run()` method, collecting and printing standard output or standard error messages during the process execution.
    `int` | `waitFor()` Allows the caller to wait for the completion of the process.
    `int` | `waitFor(long timeout)` Allows the caller to wait for the completion of the process, but no longer than a given timeout value.

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

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

- - ### Constructor Detail

    - #### Runner

          public Runner(Process aProcess)

      Constructor that takes a given `Process` object and assigns default process name.
      Parameters:
        `aProcess` - The given `Process` object.

    - #### Runner

          public Runner(Process aProcess,
                        String procName)

      Constructor that takes a given `Process` object and a given process name.
      Parameters:
        `aProcess` - The given `Process` object.
        `procName` - The given process name.

    - #### Runner

          public Runner(Process aProcess,
                        String procName,
                        boolean printToConsole)

      Constructor that takes a given `Process` object, a given process name, and a given `boolean` flag that enables/disables console printing. If the given process name is `null`, the default process name is assigned.
      Parameters:
        `aProcess` - The given `Process` object.
        `procName` - The given process name.
        `printToConsole` - `boolean` flag that enables/disables console printing.

  - ### Method Detail

    - #### addStreamListener

          public void addStreamListener(ProcessUtil.StdStreamListener listener)

      Adds a given object, implementing the `StdStreamListener` interface to the list of standard stream listeners. Sends to the new listener previously printed standard error and standard output messages.
      Parameters:
        `listener` - The given new standard stream listener.

    - #### getExitCode

          public int getExitCode()

      Returns:
        Process exit code after the process finishes, otherwise `Integer.MAX_VALUE`.

    - #### getErrOutput

          public String getErrOutput()

      Returns:
        Standard error messages collected during the process execution.

    - #### getProcess

          public Process getProcess()

    - #### getStdOutput

          public String getStdOutput()

      Returns:
        Standard output messages collected during the process execution.

    - #### removeListener

          public void removeListener(ProcessUtil.StdStreamListener listener)

      Removes a given `StdStreamListener` object from the list of standard stream listeners.
      Parameters:
        `listener` - The given `StdStreamListener` object to be removed from the list.

    - #### run

          public void run()

      Implements the `Runnable.run()` method, collecting and printing standard output or standard error messages during the process execution.
      Specified by:
        `run` in interface `Runnable`

    - #### waitFor

          public int waitFor()

      Allows the caller to wait for the completion of the process.
      Returns:
        Process exit code.

    - #### waitFor

          public int waitFor(long timeout)

      Allows the caller to wait for the completion of the process, but no longer than a given timeout value.
      Parameters:
        `timeout` - The given timeout value (ms).
      Returns:
        Process exit code or `Integer.MAX_VALUE`, if the process has not finished yet.

Copyright © 2006–2022 The Apache Software Foundation. All rights reserved.