TokenBuffer.Segment
Date: 2016-12-04

com.fasterxml.jackson.databind.util

## Class TokenBuffer.Segment

- java.lang.Object
- - com.fasterxml.jackson.databind.util.TokenBuffer.Segment

- Enclosing class:
    TokenBuffer

      protected static final class TokenBuffer.Segment
      extends java.lang.Object

  Individual segment of TokenBuffer that can store up to 16 tokens (limited by 4 bits per token type marker requirement). Current implementation uses fixed length array; could alternatively use 16 distinct fields and switch statement (slightly more efficient storage, slightly slower access)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.TreeMap<java.lang.Integer,java.lang.Object>` | `_nativeIds` Lazily constructed Map for storing native type and object ids, if any
    `protected TokenBuffer.Segment` | `_next`
    `protected java.lang.Object[]` | `_tokens`
    `protected long` | `_tokenTypes` Bit field used to store types of buffered tokens; 4 bits per token.
    `static int` | `TOKENS_PER_SEGMENT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TokenBuffer.Segment()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `TokenBuffer.Segment` | `append(int index, com.fasterxml.jackson.core.JsonToken tokenType)`
    `TokenBuffer.Segment` | `append(int index, com.fasterxml.jackson.core.JsonToken tokenType, java.lang.Object value)`
    `TokenBuffer.Segment` | `append(int index, com.fasterxml.jackson.core.JsonToken tokenType, java.lang.Object objectId, java.lang.Object typeId)`
    `TokenBuffer.Segment` | `append(int index, com.fasterxml.jackson.core.JsonToken tokenType, java.lang.Object value, java.lang.Object objectId, java.lang.Object typeId)`
    `TokenBuffer.Segment` | `appendRaw(int index, int rawTokenType, java.lang.Object value)`
    `TokenBuffer.Segment` | `appendRaw(int index, int rawTokenType, java.lang.Object value, java.lang.Object objectId, java.lang.Object typeId)`
    `java.lang.Object` | `findObjectId(int index)`
    `java.lang.Object` | `findTypeId(int index)`
    `java.lang.Object` | `get(int index)`
    `boolean` | `hasIds()` Accessor for checking whether this segment may have native type or object ids.
    `TokenBuffer.Segment` | `next()`
    `int` | `rawType(int index)`
    `com.fasterxml.jackson.core.JsonToken` | `type(int index)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### TOKENS_PER_SEGMENT

          public static final int TOKENS_PER_SEGMENT

      See Also:
        Constant Field Values

    - #### _next

          protected TokenBuffer.Segment _next

    - #### _tokenTypes

          protected long _tokenTypes

      Bit field used to store types of buffered tokens; 4 bits per token. Value 0 is reserved for "not in use"

    - #### _tokens

          protected final java.lang.Object[] _tokens

    - #### _nativeIds

          protected java.util.TreeMap<java.lang.Integer,java.lang.Object> _nativeIds

      Lazily constructed Map for storing native type and object ids, if any

  - ### Constructor Detail

    - #### TokenBuffer.Segment

          public TokenBuffer.Segment()

  - ### Method Detail

    - #### type

          public com.fasterxml.jackson.core.JsonToken type(int index)

    - #### rawType

          public int rawType(int index)

    - #### get

          public java.lang.Object get(int index)

    - #### next

          public TokenBuffer.Segment next()

    - #### hasIds

          public boolean hasIds()

      Accessor for checking whether this segment may have native type or object ids.

    - #### append

          public TokenBuffer.Segment append(int index,
                                   com.fasterxml.jackson.core.JsonToken tokenType)

    - #### append

          public TokenBuffer.Segment append(int index,
                                   com.fasterxml.jackson.core.JsonToken tokenType,
                                   java.lang.Object objectId,
                                   java.lang.Object typeId)

    - #### append

          public TokenBuffer.Segment append(int index,
                                   com.fasterxml.jackson.core.JsonToken tokenType,
                                   java.lang.Object value)

    - #### append

          public TokenBuffer.Segment append(int index,
                                   com.fasterxml.jackson.core.JsonToken tokenType,
                                   java.lang.Object value,
                                   java.lang.Object objectId,
                                   java.lang.Object typeId)

    - #### appendRaw

          public TokenBuffer.Segment appendRaw(int index,
                                      int rawTokenType,
                                      java.lang.Object value)

    - #### appendRaw

          public TokenBuffer.Segment appendRaw(int index,
                                      int rawTokenType,
                                      java.lang.Object value,
                                      java.lang.Object objectId,
                                      java.lang.Object typeId)

    - #### findObjectId

          public java.lang.Object findObjectId(int index)

      Since:
        2.3

    - #### findTypeId

          public java.lang.Object findTypeId(int index)

      Since:
        2.3