groovy.ui

## Class SystemOutputInterceptor

- java.lang.Object
- - java.io.OutputStream
  - - java.io.FilterOutputStream
    - - groovy.ui.SystemOutputInterceptor

- All Implemented Interfaces:
    Closeable, Flushable, AutoCloseable

      public class SystemOutputInterceptor
      extends FilterOutputStream

  Intercepts System.out/System.err. Implementation helper for Console.groovy.
  Version:
    $Id$

- - ### Field Summary

    - ### Fields inherited from class java.io.FilterOutputStream

      `out`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SystemOutputInterceptor(Closure callback)` Constructor
    `SystemOutputInterceptor(Closure callback, boolean output)` Constructor

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `start()` Starts intercepting System.out/System.err
    `void` | `stop()` Stops intercepting System.out/System.err, sending output to wherever it was going when this interceptor was created.
    `void` | `write(byte[] b, int off, int len)` Intercepts output - moret common case of byte[]
    `void` | `write(int b)` Intercepts output - single characters

    - ### Methods inherited from class java.io.FilterOutputStream

      `close, flush, write`

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

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

- - ### Constructor Detail

    - #### SystemOutputInterceptor

          public SystemOutputInterceptor(Closure callback)

      Constructor
      Parameters:
        `callback` - accepts a string to be sent to std out and returns a Boolean. If the return value is true, output will be sent to System.out, otherwise it will not.

    - #### SystemOutputInterceptor

          public SystemOutputInterceptor(Closure callback,
                                 boolean output)

      Constructor
      Parameters:
        `callback` - accepts a string to be sent to std out and returns a Boolean. If the return value is true, output will be sent to System.out/System.err, otherwise it will not.
        `output` - flag that tells whether System.out needs capturing ot System.err

  - ### Method Detail

    - #### start

          public void start()

      Starts intercepting System.out/System.err

    - #### stop

          public void stop()

      Stops intercepting System.out/System.err, sending output to wherever it was going when this interceptor was created.

    - #### write

          public void write(byte[] b,
                   int off,
                   int len)
                     throws IOException

      Intercepts output - moret common case of byte[]
      Overrides:
        `write` in class `FilterOutputStream`
      Throws:
        `IOException`

    - #### write

          public void write(int b)
                     throws IOException

      Intercepts output - single characters
      Overrides:
        `write` in class `FilterOutputStream`
      Throws:
        `IOException`