Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.fasterxml.jackson.databind.util
Class TokenBuffer

    java.lang.Object
      com.fasterxml.jackson.core.JsonGenerator
          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.Feature`s 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.Feature`s 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()

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2012 fasterxml.com. All Rights Reserved.