org.codehaus.jackson.io
Class IOContext

java.lang.Object
  extended by 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 Summary
protected  BufferRecycler _bufferRecycler
          Recycler used for actual allocation/deallocation/reuse
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.
protected  JsonEncoding _encoding
          Encoding used by the underlying stream, if known.
protected  boolean _managedResource
          Flag that indicates whether underlying input/output source/target object is fully managed by the owner of this context (parser or generator).
protected  char[] _nameCopyBuffer
          Reference temporary buffer Parser instances need if calling app decides it wants to access name via 'getTextCharacters' method.
protected  byte[] _readIOBuffer
          Reference to the allocated I/O buffer for low-level input reading, if any allocated.
protected  Object _sourceRef
          Reference to the source object, which can be used for displaying location information
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.
protected  byte[] _writeEncodingBuffer
          Reference to the allocated I/O buffer used for low-level encoding-related buffering.
 
Constructor Summary
IOContext(BufferRecycler br, Object sourceRef, boolean managedResource)
           
 
Method Summary
 char[] allocConcatBuffer()
           
 char[] allocNameCopyBuffer(int minSize)
           
 byte[] allocReadIOBuffer()
           Note: the method can only be called once during its life cycle.
 char[] allocTokenBuffer()
           
 byte[] allocWriteEncodingBuffer()
           
 TextBuffer constructTextBuffer()
           
 JsonEncoding getEncoding()
           
 Object getSourceReference()
           
 boolean isResourceManaged()
           
 void releaseConcatBuffer(char[] buf)
           
 void releaseNameCopyBuffer(char[] buf)
           
 void releaseReadIOBuffer(byte[] buf)
          Method to call when all the processing buffers can be safely recycled.
 void releaseTokenBuffer(char[] buf)
           
 void releaseWriteEncodingBuffer(byte[] buf)
           
 void setEncoding(JsonEncoding enc)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_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 Detail

IOContext

public IOContext(BufferRecycler br,
                 Object sourceRef,
                 boolean managedResource)
Method Detail

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)