Class IOContext

java.lang.Object
org.codehaus.jackson.io.IOContext

public final class IOContext extends Object
To limit number of configuration and state objects to pass, all contextual objects that need to be passed by the factory to readers and writers are combined under this object. One instance is created for each reader and writer.
  • Field Details

    • _sourceRef

      protected final Object _sourceRef
      Reference to the source object, which can be used for displaying location information
    • _encoding

      protected JsonEncoding _encoding
      Encoding used by the underlying stream, if known.
    • _managedResource

      protected final boolean _managedResource
      Flag that indicates whether underlying input/output source/target object is fully managed by the owner of this context (parser or generator). If true, it is, and is to be closed by parser/generator; if false, calling application has to do closing (unless auto-closing feature is enabled for the parser/generator in question; in which case it acts like the owner).
    • _bufferRecycler

      protected final BufferRecycler _bufferRecycler
      Recycler used for actual allocation/deallocation/reuse
    • _readIOBuffer

      protected byte[] _readIOBuffer
      Reference to the allocated I/O buffer for low-level input reading, if any allocated.
    • _writeEncodingBuffer

      protected byte[] _writeEncodingBuffer
      Reference to the allocated I/O buffer used for low-level encoding-related buffering.
    • _tokenCBuffer

      protected char[] _tokenCBuffer
      Reference to the buffer allocated for tokenization purposes, in which character input is read, and from which it can be further returned.
    • _concatCBuffer

      protected char[] _concatCBuffer
      Reference to the buffer allocated for buffering it for output, before being encoded: generally this means concatenating output, then encoding when buffer fills up.
    • _nameCopyBuffer

      protected char[] _nameCopyBuffer
      Reference temporary buffer Parser instances need if calling app decides it wants to access name via 'getTextCharacters' method. Regular text buffer can not be used as it may contain textual representation of the value token.
  • Constructor Details

  • Method Details

    • setEncoding

      public void setEncoding(JsonEncoding enc)
    • getSourceReference

      public final Object getSourceReference()
    • getEncoding

      public final JsonEncoding getEncoding()
    • isResourceManaged

      public final boolean isResourceManaged()
    • constructTextBuffer

      public final TextBuffer constructTextBuffer()
    • allocReadIOBuffer

      public final byte[] allocReadIOBuffer()

      Note: the method can only be called once during its life cycle. This is to protect against accidental sharing.

    • allocWriteEncodingBuffer

      public final byte[] allocWriteEncodingBuffer()
    • allocTokenBuffer

      public final char[] allocTokenBuffer()
    • allocConcatBuffer

      public final char[] allocConcatBuffer()
    • allocNameCopyBuffer

      public final char[] allocNameCopyBuffer(int minSize)
    • releaseReadIOBuffer

      public final void releaseReadIOBuffer(byte[] buf)
      Method to call when all the processing buffers can be safely recycled.
    • releaseWriteEncodingBuffer

      public final void releaseWriteEncodingBuffer(byte[] buf)
    • releaseTokenBuffer

      public final void releaseTokenBuffer(char[] buf)
    • releaseConcatBuffer

      public final void releaseConcatBuffer(char[] buf)
    • releaseNameCopyBuffer

      public final void releaseNameCopyBuffer(char[] buf)