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:
  • Constructor Details

    • InputDecorator

      public InputDecorator()
  • Method Details

    • 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 - if construction of InputStream fails
    • 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 - if construction of InputStream fails
    • decorate

      public DataInput decorate(IOContext ctxt, DataInput input) throws IOException
      Method called by JsonFactory instance when creating parser given an DataInput, when this decorator has been registered.

      Default implementation simply throws UnsupportedOperationException

      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.
      input - Original input source
      Returns:
      InputStream to use; either 'input' as is, or decorator version that typically delogates to 'input'
      Throws:
      IOException - if construction of DataInput fails
      Since:
      2.8
    • 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 - if construction of Reader fails