org.codehaus.jackson.io

## Class InputDecorator

- java.lang.Object
- - org.codehaus.jackson.io.InputDecorator

-     public abstract class InputDecorator
      extends Object

  Handler class that can be used to decorate input sources. Typical use is to use a filter abstraction (filtered stream, reader) around original input source, and apply additional processing during read operations.
  Since:
    1.8

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `InputDecorator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract InputStream` | `decorate(IOContext ctxt, byte[] src, int offset, int length)` Method called by `JsonFactory` instance when creating parser on given "raw" byte source.
    `abstract InputStream` | `decorate(IOContext ctxt, InputStream in)` Method called by `JsonFactory` instance when creating parser given an `InputStream`, when this decorator has been registered.
    `abstract Reader` | `decorate(IOContext ctxt, Reader src)` Method called by `JsonFactory` instance when creating parser given an `Reader`, when this decorator has been registered.

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

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

- - ### Constructor Detail

    - #### InputDecorator

          public InputDecorator()

  - ### Method Detail

    - #### decorate

          public abstract InputStream decorate(IOContext ctxt,
                             InputStream in)
                                        throws IOException

      Method called by `JsonFactory` instance when creating parser given an `InputStream`, when this decorator has been registered.
      Parameters:
        `ctxt` - IO context in use (provides access to declared encoding). NOTE: at this point context may not have all information initialized; specifically auto-detected encoding is only available once parsing starts, which may occur only after this method is called.
        `in` - Original input source
      Returns:
        InputStream to use; either passed in argument, or something that calls it
      Throws:
        `IOException`

    - #### decorate

          public abstract InputStream decorate(IOContext ctxt,
                             byte[] src,
                             int offset,
                             int length)
                                        throws IOException

      Method called by `JsonFactory` instance when creating parser on given "raw" byte source. Method can either construct a `InputStream` for reading; or return null to indicate that no wrapping should occur.
      Parameters:
        `ctxt` - IO context in use (provides access to declared encoding) NOTE: at this point context may not have all information initialized; specifically auto-detected encoding is only available once parsing starts, which may occur only after this method is called.
        `src` - Input buffer that contains contents to parse
        `offset` - Offset of the first available byte in the input buffer
        `length` - Number of bytes available in the input buffer
      Returns:
        Either `InputStream` to use as input source; or null to indicate that contents are to be processed as-is by caller
      Throws:
        `IOException`

    - #### decorate

          public abstract Reader decorate(IOContext ctxt,
                        Reader src)
                                   throws IOException

      Method called by `JsonFactory` instance when creating parser given an `Reader`, when this decorator has been registered.
      Parameters:
        `ctxt` - IO context in use (provides access to declared encoding) NOTE: at this point context may not have all information initialized; specifically auto-detected encoding is only available once parsing starts, which may occur only after this method is called.
        `src` - Original input source
      Returns:
        Reader to use; either passed in argument, or something that calls it (for example, a `FilterReader`)
      Throws:
        `IOException`