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

Constructors
Constructor and Description
`InputDecorator()`

### Method Summary

All Methods Instance Methods Abstract Methods
`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 r)` 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 'in' as is, or decorator version that typically delogates to 'in'
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 r)
                             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.
  `r` - Original reader
Returns:
  Reader to use; either passed in argument, or something that calls it (for example, a `FilterReader`)
Throws:
  `IOException`