Class TokenBuffer.Segment

java.lang.Object
com.fasterxml.jackson.databind.util.TokenBuffer.Segment
Enclosing class:
TokenBuffer

protected static final class TokenBuffer.Segment extends 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 Details

    • TOKENS_PER_SEGMENT

      public static final int TOKENS_PER_SEGMENT
      See Also:
    • _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 Object[] _tokens
    • _nativeIds

      protected TreeMap<Integer,Object> _nativeIds
      Lazily constructed Map for storing native type and object ids, if any
  • Constructor Details

    • Segment

      public Segment()
  • Method Details

    • type

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

      public int rawType(int index)
    • get

      public 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, Object objectId, Object typeId)
    • append

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

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