Package groovy.ui

Class SystemOutputInterceptor

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    public class SystemOutputInterceptor
    extends java.io.FilterOutputStream
    Intercepts System.out/System.err. Implementation helper for Console.groovy.
    Version:
    $Id$
    • Field Summary

      • Fields inherited from class java.io.FilterOutputStream

        out
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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.io.OutputStream

        nullOutputStream
      • 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 java.io.IOException
        Intercepts output - moret common case of byte[]
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException
      • write

        public void write​(int b)
                   throws java.io.IOException
        Intercepts output - single characters
        Overrides:
        write in class java.io.FilterOutputStream
        Throws:
        java.io.IOException