## com.fasterxml.jackson.core.io
Class InputDecorator

    java.lang.Object
      com.fasterxml.jackson.core.io.InputDecorator

All Implemented Interfaces:
  Serializable

    public abstract class InputDecorator

extends Object
implements Serializable

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.

See Also:
  Serialized Form

Constructor Summary
`InputDecorator()`

Method Summary
`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`

Copyright © 2012 FasterXML. All Rights Reserved.