package com.fasterxml.jackson.core.io;

import java.io.*;

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.
/** * 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. */
public abstract class InputDecorator implements java.io.Serializable // since 2.1 { private static final long serialVersionUID = 1L;
Method called by JsonFactory instance when creating parser given an InputStream, when this decorator has been registered.
Params:
  • 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'
/** * Method called by {@link com.fasterxml.jackson.core.JsonFactory} instance when * creating parser given an {@link InputStream}, when this decorator * has been registered. * * @param 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. * @param in Original input source * * @return InputStream to use; either 'in' as is, or decorator * version that typically delogates to 'in' */
public abstract InputStream decorate(IOContext ctxt, InputStream in) 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.
Params:
  • 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
/** * Method called by {@link com.fasterxml.jackson.core.JsonFactory} instance when * creating parser on given "raw" byte source. * Method can either construct a {@link InputStream} for reading; or return * null to indicate that no wrapping should occur. * * @param 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. * @param src Input buffer that contains contents to parse * @param offset Offset of the first available byte in the input buffer * @param length Number of bytes available in the input buffer * * @return Either {@link InputStream} to use as input source; or null to indicate * that contents are to be processed as-is by caller */
public abstract InputStream decorate(IOContext ctxt, byte[] src, int offset, int length) throws IOException;
Method called by JsonFactory instance when creating parser given an DataInput, when this decorator has been registered.

Default implementation simply throws UnsupportedOperationException

Params:
  • 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'
Since:2.8
/** * Method called by {@link com.fasterxml.jackson.core.JsonFactory} instance when * creating parser given an {@link DataInput}, when this decorator * has been registered. *<p> * Default implementation simply throws {@link UnsupportedOperationException} * * @param 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. * @param input Original input source * * @return InputStream to use; either 'input' as is, or decorator * version that typically delogates to 'input' * * @since 2.8 */
public DataInput decorate(IOContext ctxt, DataInput input) throws IOException { throw new UnsupportedOperationException(); }
Method called by JsonFactory instance when creating parser given an Reader, when this decorator has been registered.
Params:
  • 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)
/** * Method called by {@link com.fasterxml.jackson.core.JsonFactory} instance when * creating parser given an {@link Reader}, when this decorator * has been registered. * * @param 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. * @param r Original reader * * @return Reader to use; either passed in argument, or something that * calls it (for example, a {@link FilterReader}) */
public abstract Reader decorate(IOContext ctxt, Reader r) throws IOException; }