com.fasterxml.jackson.databind.util
Class TokenBuffer

java.lang.Object
  extended by com.fasterxml.jackson.core.JsonGenerator
      extended by com.fasterxml.jackson.databind.util.TokenBuffer
All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned, Closeable

public class TokenBuffer
extends com.fasterxml.jackson.core.JsonGenerator

Utility class used for efficient storage of JsonToken sequences, needed for temporary buffering. Space efficient for different sequence lengths (especially so for smaller ones; but not significantly less efficient for larger), highly efficient for linear iteration and appending. Implemented as segmented/chunked linked list of tokens; only modifications are via appends.

Note that before version 2.0, this class was located in the "core" bundle, not data-binding; but since it was only used by data binding, was moved here to reduce size of core package


Nested Class Summary
protected static class TokenBuffer.Parser
           
protected static class TokenBuffer.Segment
          Individual segment of TokenBuffer that can store up to 16 tokens (limited by 4 bits per token type marker requirement).
 
Nested classes/interfaces inherited from class com.fasterxml.jackson.core.JsonGenerator
com.fasterxml.jackson.core.JsonGenerator.Feature
 
Field Summary
protected  int _appendOffset
          Offset within last segment,
protected  boolean _closed
           
protected  TokenBuffer.Segment _first
          First segment, for contents this buffer has
protected  int _generatorFeatures
          Bit flag composed of bits that indicate which JsonGenerator.Features are enabled.
protected  TokenBuffer.Segment _last
          Last segment of this buffer, one that is used for appending more tokens
protected  com.fasterxml.jackson.core.ObjectCodec _objectCodec
          Object codec to use for stream-based object conversion through parser/generator interfaces.
protected  com.fasterxml.jackson.core.json.JsonWriteContext _writeContext
           
protected static int DEFAULT_PARSER_FEATURES
           
 
Fields inherited from class com.fasterxml.jackson.core.JsonGenerator
_cfgPrettyPrinter
 
Constructor Summary
TokenBuffer(com.fasterxml.jackson.core.ObjectCodec codec)
           
 
Method Summary
protected  void _append(com.fasterxml.jackson.core.JsonToken type)
           
protected  void _append(com.fasterxml.jackson.core.JsonToken type, Object value)
           
protected  void _appendRaw(int rawType, Object value)
           
protected  void _reportUnsupportedOperation()
           
 TokenBuffer append(TokenBuffer other)
          Helper method that will append contents of given buffer into this buffer.
 com.fasterxml.jackson.core.JsonParser asParser()
          Method used to create a JsonParser that can read contents stored in this buffer.
 com.fasterxml.jackson.core.JsonParser asParser(com.fasterxml.jackson.core.JsonParser src)
           
 com.fasterxml.jackson.core.JsonParser asParser(com.fasterxml.jackson.core.ObjectCodec codec)
          Method used to create a JsonParser that can read contents stored in this buffer.
 void close()
           
 void copyCurrentEvent(com.fasterxml.jackson.core.JsonParser jp)
           
 void copyCurrentStructure(com.fasterxml.jackson.core.JsonParser jp)
           
 com.fasterxml.jackson.core.JsonGenerator disable(com.fasterxml.jackson.core.JsonGenerator.Feature f)
           
 com.fasterxml.jackson.core.JsonGenerator enable(com.fasterxml.jackson.core.JsonGenerator.Feature f)
           
 void flush()
           
 com.fasterxml.jackson.core.ObjectCodec getCodec()
           
 com.fasterxml.jackson.core.json.JsonWriteContext getOutputContext()
           
 boolean isClosed()
           
 boolean isEnabled(com.fasterxml.jackson.core.JsonGenerator.Feature f)
           
 void serialize(com.fasterxml.jackson.core.JsonGenerator jgen)
          Helper method that will write all contents of this buffer using given JsonGenerator.
 com.fasterxml.jackson.core.JsonGenerator setCodec(com.fasterxml.jackson.core.ObjectCodec oc)
           
 String toString()
           
 com.fasterxml.jackson.core.JsonGenerator useDefaultPrettyPrinter()
           
 com.fasterxml.jackson.core.Version version()
           
 void writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant, byte[] data, int offset, int len)
           
 void writeBoolean(boolean state)
           
 void writeEndArray()
           
 void writeEndObject()
           
 void writeFieldName(com.fasterxml.jackson.core.SerializableString name)
           
 void writeFieldName(String name)
           
 void writeNull()
           
 void writeNumber(BigDecimal dec)
           
 void writeNumber(BigInteger v)
           
 void writeNumber(double d)
           
 void writeNumber(float f)
           
 void writeNumber(int i)
           
 void writeNumber(long l)
           
 void writeNumber(String encodedValue)
           
 void writeObject(Object value)
           
 void writeRaw(char c)
           
 void writeRaw(char[] text, int offset, int len)
           
 void writeRaw(String text)
           
 void writeRaw(String text, int offset, int len)
           
 void writeRawUTF8String(byte[] text, int offset, int length)
           
 void writeRawValue(char[] text, int offset, int len)
           
 void writeRawValue(String text)
           
 void writeRawValue(String text, int offset, int len)
           
 void writeStartArray()
           
 void writeStartObject()
           
 void writeString(char[] text, int offset, int len)
           
 void writeString(com.fasterxml.jackson.core.SerializableString text)
           
 void writeString(String text)
           
 void writeTree(com.fasterxml.jackson.core.TreeNode rootNode)
           
 void writeUTF8String(byte[] text, int offset, int length)
           
 
Methods inherited from class com.fasterxml.jackson.core.JsonGenerator
canUseSchema, configure, getCharacterEscapes, getHighestEscapedChar, getOutputTarget, setCharacterEscapes, setHighestNonEscapedChar, setPrettyPrinter, setSchema, writeArrayFieldStart, writeBinary, writeBinary, writeBinaryField, writeBooleanField, writeNullField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeObjectField, writeObjectFieldStart, writeStringField
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_PARSER_FEATURES

protected static final int DEFAULT_PARSER_FEATURES

_objectCodec

protected com.fasterxml.jackson.core.ObjectCodec _objectCodec
Object codec to use for stream-based object conversion through parser/generator interfaces. If null, such methods can not be used.


_generatorFeatures

protected int _generatorFeatures
Bit flag composed of bits that indicate which JsonGenerator.Features are enabled.

NOTE: most features have no effect on this class


_closed

protected boolean _closed

_first

protected TokenBuffer.Segment _first
First segment, for contents this buffer has


_last

protected TokenBuffer.Segment _last
Last segment of this buffer, one that is used for appending more tokens


_appendOffset

protected int _appendOffset
Offset within last segment,


_writeContext

protected com.fasterxml.jackson.core.json.JsonWriteContext _writeContext
Constructor Detail

TokenBuffer

public TokenBuffer(com.fasterxml.jackson.core.ObjectCodec codec)
Parameters:
codec - Object codec to use for stream-based object conversion through parser/generator interfaces. If null, such methods can not be used.
Method Detail

version

public com.fasterxml.jackson.core.Version version()
Specified by:
version in interface com.fasterxml.jackson.core.Versioned
Specified by:
version in class com.fasterxml.jackson.core.JsonGenerator

asParser

public com.fasterxml.jackson.core.JsonParser asParser()
Method used to create a JsonParser that can read contents stored in this buffer. Will use default _objectCodec for object conversions.

Note: instances are not synchronized, that is, they are not thread-safe if there are concurrent appends to the underlying buffer.

Returns:
Parser that can be used for reading contents stored in this buffer

asParser

public com.fasterxml.jackson.core.JsonParser asParser(com.fasterxml.jackson.core.ObjectCodec codec)
Method used to create a JsonParser that can read contents stored in this buffer.

Note: instances are not synchronized, that is, they are not thread-safe if there are concurrent appends to the underlying buffer.

Parameters:
codec - Object codec to use for stream-based object conversion through parser/generator interfaces. If null, such methods can not be used.
Returns:
Parser that can be used for reading contents stored in this buffer

asParser

public com.fasterxml.jackson.core.JsonParser asParser(com.fasterxml.jackson.core.JsonParser src)
Parameters:
src - Parser to use for accessing source information like location, configured codec

append

public TokenBuffer append(TokenBuffer other)
                   throws IOException,
                          com.fasterxml.jackson.core.JsonGenerationException
Helper method that will append contents of given buffer into this buffer. Not particularly optimized; can be made faster if there is need.

Returns:
This buffer
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

serialize

public void serialize(com.fasterxml.jackson.core.JsonGenerator jgen)
               throws IOException,
                      com.fasterxml.jackson.core.JsonGenerationException
Helper method that will write all contents of this buffer using given JsonGenerator.

Note: this method would be enough to implement JsonSerializer for TokenBuffer type; but we can not have upwards references (from core to mapper package); and as such we also can not take second argument.

Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

toString

public String toString()
Overrides:
toString in class Object

enable

public com.fasterxml.jackson.core.JsonGenerator enable(com.fasterxml.jackson.core.JsonGenerator.Feature f)
Specified by:
enable in class com.fasterxml.jackson.core.JsonGenerator

disable

public com.fasterxml.jackson.core.JsonGenerator disable(com.fasterxml.jackson.core.JsonGenerator.Feature f)
Specified by:
disable in class com.fasterxml.jackson.core.JsonGenerator

isEnabled

public boolean isEnabled(com.fasterxml.jackson.core.JsonGenerator.Feature f)
Specified by:
isEnabled in class com.fasterxml.jackson.core.JsonGenerator

useDefaultPrettyPrinter

public com.fasterxml.jackson.core.JsonGenerator useDefaultPrettyPrinter()
Specified by:
useDefaultPrettyPrinter in class com.fasterxml.jackson.core.JsonGenerator

setCodec

public com.fasterxml.jackson.core.JsonGenerator setCodec(com.fasterxml.jackson.core.ObjectCodec oc)
Specified by:
setCodec in class com.fasterxml.jackson.core.JsonGenerator

getCodec

public com.fasterxml.jackson.core.ObjectCodec getCodec()
Specified by:
getCodec in class com.fasterxml.jackson.core.JsonGenerator

getOutputContext

public final com.fasterxml.jackson.core.json.JsonWriteContext getOutputContext()
Specified by:
getOutputContext in class com.fasterxml.jackson.core.JsonGenerator

flush

public void flush()
           throws IOException
Specified by:
flush in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Specified by:
close in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException

isClosed

public boolean isClosed()
Specified by:
isClosed in class com.fasterxml.jackson.core.JsonGenerator

writeStartArray

public final void writeStartArray()
                           throws IOException,
                                  com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeStartArray in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeEndArray

public final void writeEndArray()
                         throws IOException,
                                com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeEndArray in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeStartObject

public final void writeStartObject()
                            throws IOException,
                                   com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeStartObject in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeEndObject

public final void writeEndObject()
                          throws IOException,
                                 com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeEndObject in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeFieldName

public final void writeFieldName(String name)
                          throws IOException,
                                 com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeFieldName in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeFieldName

public void writeFieldName(com.fasterxml.jackson.core.SerializableString name)
                    throws IOException,
                           com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeFieldName in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeString

public void writeString(String text)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeString in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeString

public void writeString(char[] text,
                        int offset,
                        int len)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeString in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeString

public void writeString(com.fasterxml.jackson.core.SerializableString text)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeString in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeRawUTF8String

public void writeRawUTF8String(byte[] text,
                               int offset,
                               int length)
                        throws IOException,
                               com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeRawUTF8String in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeUTF8String

public void writeUTF8String(byte[] text,
                            int offset,
                            int length)
                     throws IOException,
                            com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeUTF8String in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeRaw

public void writeRaw(String text)
              throws IOException,
                     com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeRaw in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeRaw

public void writeRaw(String text,
                     int offset,
                     int len)
              throws IOException,
                     com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeRaw in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeRaw

public void writeRaw(char[] text,
                     int offset,
                     int len)
              throws IOException,
                     com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeRaw in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeRaw

public void writeRaw(char c)
              throws IOException,
                     com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeRaw in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeRawValue

public void writeRawValue(String text)
                   throws IOException,
                          com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeRawValue in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeRawValue

public void writeRawValue(String text,
                          int offset,
                          int len)
                   throws IOException,
                          com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeRawValue in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeRawValue

public void writeRawValue(char[] text,
                          int offset,
                          int len)
                   throws IOException,
                          com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeRawValue in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeNumber

public void writeNumber(int i)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeNumber in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeNumber

public void writeNumber(long l)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeNumber in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeNumber

public void writeNumber(double d)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeNumber in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeNumber

public void writeNumber(float f)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeNumber in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeNumber

public void writeNumber(BigDecimal dec)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeNumber in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeNumber

public void writeNumber(BigInteger v)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeNumber in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeNumber

public void writeNumber(String encodedValue)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeNumber in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeBoolean

public void writeBoolean(boolean state)
                  throws IOException,
                         com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeBoolean in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeNull

public void writeNull()
               throws IOException,
                      com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeNull in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

writeObject

public void writeObject(Object value)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonProcessingException
Specified by:
writeObject in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonProcessingException

writeTree

public void writeTree(com.fasterxml.jackson.core.TreeNode rootNode)
               throws IOException,
                      com.fasterxml.jackson.core.JsonProcessingException
Specified by:
writeTree in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonProcessingException

writeBinary

public void writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant,
                        byte[] data,
                        int offset,
                        int len)
                 throws IOException,
                        com.fasterxml.jackson.core.JsonGenerationException
Specified by:
writeBinary in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

copyCurrentEvent

public void copyCurrentEvent(com.fasterxml.jackson.core.JsonParser jp)
                      throws IOException,
                             com.fasterxml.jackson.core.JsonProcessingException
Specified by:
copyCurrentEvent in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonProcessingException

copyCurrentStructure

public void copyCurrentStructure(com.fasterxml.jackson.core.JsonParser jp)
                          throws IOException,
                                 com.fasterxml.jackson.core.JsonProcessingException
Specified by:
copyCurrentStructure in class com.fasterxml.jackson.core.JsonGenerator
Throws:
IOException
com.fasterxml.jackson.core.JsonProcessingException

_append

protected final void _append(com.fasterxml.jackson.core.JsonToken type)

_append

protected final void _append(com.fasterxml.jackson.core.JsonToken type,
                             Object value)

_appendRaw

protected final void _appendRaw(int rawType,
                                Object value)

_reportUnsupportedOperation

protected void _reportUnsupportedOperation()


Copyright © 2012 fasterxml.com. All Rights Reserved.