Class CBORParser

java.lang.Object
com.fasterxml.jackson.core.JsonParser
com.fasterxml.jackson.core.base.ParserMinimalBase
com.fasterxml.jackson.dataformat.cbor.CBORParser
All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned, Closeable, AutoCloseable

public class CBORParser extends com.fasterxml.jackson.core.base.ParserMinimalBase
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    Enumeration that defines all togglable features for CBOR generators.
    protected static final class 
    Type to keep track of a list of string references.
    protected static final class 
    Type to keep a stack of string refs based on namespaces within the document.
    static final class 
    Class for keeping track of tags in an optimized manner.

    Nested classes/interfaces inherited from class com.fasterxml.jackson.core.JsonParser

    com.fasterxml.jackson.core.JsonParser.NumberType, com.fasterxml.jackson.core.JsonParser.NumberTypeFP
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected byte[]
    We will hold on to decoded binary data, for duration of current event, so that multiple calls to getBinaryValue(com.fasterxml.jackson.core.Base64Variant) will not need to decode data more than once.
    protected boolean
    Flag that indicates whether the input buffer is recycable (and needs to be returned to recycler once we are done) or not.
    protected com.fasterxml.jackson.core.util.ByteArrayBuilder
    ByteArrayBuilder is needed if 'getBinaryValue' is called.
    private int
    Helper variables used when dealing with chunked content.
    private int
    Helper variables used when dealing with chunked content.
    protected boolean
    Flag that indicates whether parser is closed or not.
    protected long
    Number of characters/bytes that were contained in previous blocks (blocks that were already processed prior to the current buffer).
    protected int
    Current row location of current point in input buffer, starting from 1, if available.
    protected int
    Current index of the first character of the current row in input buffer.
    protected byte[]
    Current buffer from which data is read; generally data is read into buffer from input source, but in some cases pre-loaded buffer is handed to the parser.
    protected int
    Index of character after last available one in the buffer.
    protected int
    Pointer to next available character in buffer
    protected InputStream
    Input stream that can be used for reading more content, if one in use.
    protected final com.fasterxml.jackson.core.io.IOContext
    I/O context for this reader.
    protected boolean
    Flag set to indicate whether the field name is available from the name copy buffer or not (in addition to its String representation being available via read context)
    protected char[]
    Temporary buffer that is needed if field name is accessed using getTextCharacters() method (instead of String returning alternatives)
    protected BigDecimal
     
    protected BigInteger
     
    protected double
     
    protected float
     
    protected int
     
    protected long
     
    protected int
    Bitfield that indicates which numeric representations have been calculated for the current type
    protected com.fasterxml.jackson.core.ObjectCodec
    Codec used for data binding when (if) requested.
    protected int
    Quads used for hash calculation
    protected int
    Quads used for hash calculation
    protected int
    Quads used for hash calculation
    protected int[]
    Temporary buffer used for name parsing.
    protected String
    Shared string that should be used in place of _textBuffer when a string reference is used.
    protected final com.fasterxml.jackson.core.StreamReadConstraints
     
    protected CBORReadContext
    Information about parser context, context in which the next token is to be parsed (root, array, object).
    Stack of text and binary string references.
    protected final com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer
    Symbol table that contains field names encountered so far
    protected final boolean
    Marker flag to indicate that standard symbol handling is used (one with symbol table assisted canonicalization.
    We will keep track of tag values for possible future use.
    protected final com.fasterxml.jackson.core.util.TextBuffer
    Buffer that contains contents of String values, including field names if necessary (name split across boundary, contains escape sequence, or access needed to char array)
    protected boolean
    Flag that indicates that the current token has not yet been fully processed, and needs to be finished for some access (or skipped to obtain the next token)
    protected int
    Column on input row that current token starts; 0-based (although in the end it'll be converted to 1-based)
    protected int
    Input row on which current token starts, 1-based
    protected long
    Total number of bytes/characters read before start of current token.
    protected int
    Type byte of the current token
    (package private) static final BigDecimal
     
    (package private) static final BigDecimal
     
    (package private) static final BigDecimal
     
    (package private) static final BigDecimal
     
    (package private) static final BigInteger
     
    (package private) static final BigInteger
     
    (package private) static final BigInteger
     
    (package private) static final BigInteger
     
    private static final BigInteger
     
    protected static final com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamReadCapability>
     
    protected static final int
     
    private static final double
     
    private static final double
     
    private static final Charset
     
    private static final int[]
     

    Fields inherited from class com.fasterxml.jackson.core.base.ParserMinimalBase

    _currToken, _lastClearedToken, CHAR_NULL, INT_0, INT_9, INT_APOS, INT_ASTERISK, INT_BACKSLASH, INT_COLON, INT_COMMA, INT_CR, INT_e, INT_E, INT_HASH, INT_LBRACKET, INT_LCURLY, INT_LF, INT_MINUS, INT_PERIOD, INT_PLUS, INT_QUOTE, INT_RBRACKET, INT_RCURLY, INT_SLASH, INT_SPACE, INT_TAB, MAX_ERROR_TOKEN_LENGTH, MAX_INT_D, MAX_INT_L, MAX_LONG_D, MIN_INT_D, MIN_INT_L, MIN_LONG_D, NO_BYTES, NO_INTS, NR_BIGDECIMAL, NR_BIGINT, NR_DOUBLE, NR_FLOAT, NR_INT, NR_LONG, NR_UNKNOWN

    Fields inherited from class com.fasterxml.jackson.core.JsonParser

    _features, _requestPayload, DEFAULT_READ_CAPABILITIES
  • Constructor Summary

    Constructors
    Constructor
    Description
    CBORParser(com.fasterxml.jackson.core.io.IOContext ctxt, int parserFeatures, int cborFeatures, com.fasterxml.jackson.core.ObjectCodec codec, com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer sym, InputStream in, byte[] inputBuffer, int start, int end, boolean bufferRecyclable)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private final String
    _addDecodedToSymbols(int len, String name)
     
    private final BigInteger
    _bigNegative(long l)
     
    private final BigInteger
    _bigPositive(long l)
     
    protected final boolean
     
    protected final boolean
    Heavily simplified method that does a subset of what nextToken() does to basically only (1) determine that we are getting JsonToken.VALUE_NUMBER_INT (if not, return with no processing) and (2) if so, prepare state so that number accessor method will work).
    protected void
    _checkNumericValue(int expType)
     
    protected void
     
    private final int
     
    private final int
     
    private final long
     
    private final int
     
    private final String
     
    private final int
     
    private final int
     
    private int
    _decodeChunkLength(int expType)
     
    private final String
     
    private final int
    _decodeExplicitLength(int lowBits)
    Method used to decode explicit length of a variable-length value (or, for indefinite/chunked, indicate that one is not known).
    private float
     
    private final String
     
    protected final void
    Method that handles initial token type recognition for token that has to be either FIELD_NAME or END_OBJECT.
    protected final com.fasterxml.jackson.core.JsonToken
     
    com.fasterxml.jackson.core.JsonToken
    _decodeSimpleValue(int lowBits, int ch)
    Helper method that deals with details of decoding unallocated "simple values" and exposing them as expected token.
    private final int
    _decodeTag(int lowBits)
     
    protected com.fasterxml.jackson.core.JsonToken
    Helper method to encapsulate details of handling of mysterious `undefined` value that is allowed to be used as something encoder could not handle (as per spec), whatever the heck that should be.
    private final int
    _decodeUTF8_3(int c1)
     
    private final int
     
    protected com.fasterxml.jackson.core.JsonToken
     
    private final String
    Helper method for trying to find specified encoded UTF-8 byte sequence from symbol table; if successful avoids actual decoding to String.
    private final String
    _findDecodedLong(int len, int q1, int q2)
    Method for locating names longer than 8 bytes (in UTF-8)
    protected byte[]
    _finishBytes(int len)
    Helper called to complete reading of binary data ("byte string") in case contents are needed.
    protected byte[]
     
    private final void
     
    protected byte[]
     
    private final String
    _finishLongText(int len)
     
    private final String
     
    protected String
     
    protected void
    Method called to finish parsing of a token so that token contents are retriable
    private final byte[]
    _getBinaryFromString(com.fasterxml.jackson.core.Base64Variant variant)
     
    protected com.fasterxml.jackson.core.util.ByteArrayBuilder
     
    private static int[]
    _growArrayTo(int[] arr, int minSize)
     
    protected void
     
    protected com.fasterxml.jackson.core.JsonToken
     
    protected com.fasterxml.jackson.core.JsonToken
     
    protected com.fasterxml.jackson.core.JsonToken
     
    protected void
    _invalidToken(int ch)
     
    protected final void
    _loadToHaveAtLeast(int minAvailable)
    Helper method that will try to load at least specified number bytes in input buffer, possible moving existing data around if necessary
    private static final long
    _long(int i1, int i2)
     
    private final int
     
    private final int
     
    private final int
     
    protected String
    _numberToName(int ch, boolean neg, CBORParser.TagList tags)
     
    private static final int
    _padQuadForNulls(int firstByte)
     
    private int
     
    protected void
    Method called to release internal buffers owned by the base reader.
    protected void
    _reportIncompleteBinaryRead(int expLen, int actLen)
     
    protected void
     
    protected void
     
    protected void
    _reportInvalidOther(int mask, int ptr)
     
    private String
    _reportTruncatedUTF8InName(int strLenBytes, int truncatedCharOffset, int firstUTFByteValue, int bytesExpected)
     
    protected <T> T
     
    protected void
    _skipBytes(int len)
     
    protected void
    _skipBytesL(long llen)
     
    protected void
    _skipChunked(int expectedType)
     
    protected void
    Method called to skip remainders of an incomplete token, when contents themselves will not be needed any more.
    private final int
     
    private final int
     
    private final long
     
    protected final boolean
    _tryToLoadToHaveAtLeast(int minAvailable)
     
    void
     
    protected void
     
    protected void
     
    protected void
     
    protected void
     
    protected void
     
    protected void
     
    private void
     
    private void
     
    com.fasterxml.jackson.core.JsonLocation
    Overridden since we do not really have character-based locations, but we do have byte offset to specify.
    Method that can be called to get the name associated with the current event.
    com.fasterxml.jackson.core.JsonLocation
    Overridden since we do not really have character-based locations, but we do have byte offset to specify.
    void
    Method for forcing full read of current token, even if it might otherwise only be read if data is accessed via getText() and similar methods.
     
    byte[]
    getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant)
     
    com.fasterxml.jackson.core.ObjectCodec
     
    com.fasterxml.jackson.core.JsonLocation
    Deprecated.
    Deprecated.
    int
    Method that can be used to access tag id associated with the most recently decoded value (whether completely, for scalar values, or partially, for Objects/Arrays), if any.
    Method that can be used to access all tag ids associated with the most recently decoded value (whether completely, for scalar values, or partially, for Objects/Arrays), if any.
     
    double
     
     
    float
     
    int
     
     
    int
     
    long
     
    com.fasterxml.jackson.core.JsonParser.NumberType
     
    com.fasterxml.jackson.core.JsonParser.NumberTypeFP
     
     
    final Number
     
     
    com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamReadCapability>
     
    Method for accessing textual representation of the current event; if no current event (before first call to nextToken(), or after encountering end-of-input), returns null.
    int
    getText(Writer writer)
     
    char[]
     
    int
     
    int
     
    com.fasterxml.jackson.core.JsonLocation
    Deprecated.
     
    getValueAsString(String defaultValue)
     
    boolean
     
    boolean
     
    boolean
     
    protected boolean
     
    protected void
     
     
     
    boolean
    nextFieldName(com.fasterxml.jackson.core.SerializableString str)
     
    int
    nextIntValue(int defaultValue)
     
    long
    nextLongValue(long defaultValue)
     
     
    com.fasterxml.jackson.core.JsonToken
     
    void
     
    int
    readBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant, OutputStream out)
     
    int
     
    void
    setCodec(com.fasterxml.jackson.core.ObjectCodec c)
     
    com.fasterxml.jackson.core.StreamReadConstraints
     
    com.fasterxml.jackson.core.Version
     

    Methods inherited from class com.fasterxml.jackson.core.base.ParserMinimalBase

    _ascii, _asciiBytes, _constructError, _currentLocationMinusOne, _decodeBase64, _getCharDesc, _hasTextualNull, _longIntegerDesc, _longNumberDesc, _reportError, _reportError, _reportError, _reportInputCoercion, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOFInValue, _reportMissingRootWS, _reportUnexpectedChar, _reportUnexpectedNumberChar, _throwInternal, _throwInternalReturnAny, _throwInvalidSpace, _wrapError, clearCurrentToken, currentToken, currentTokenId, getCurrentToken, getCurrentTokenId, getLastClearedToken, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, hasCurrentToken, hasToken, hasTokenId, isExpectedNumberIntToken, isExpectedStartArrayToken, isExpectedStartObjectToken, nextValue, reportInvalidNumber, reportOverflowInt, reportOverflowInt, reportOverflowInt, reportOverflowLong, reportOverflowLong, reportOverflowLong, reportUnexpectedNumberChar, skipChildren

    Methods inherited from class com.fasterxml.jackson.core.JsonParser

    _codec, _constructError, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _reportUnsupportedOperation, assignCurrentValue, canParseAsync, canReadObjectId, canReadTypeId, canUseSchema, configure, currentValue, disable, enable, getBinaryValue, getBooleanValue, getByteValue, getCurrentValue, getFeatureMask, getNonBlockingInputFeeder, getNumberValueDeferred, getObjectId, getSchema, getShortValue, getTypeId, getValueAsBoolean, getValueAsDouble, isEnabled, isEnabled, overrideFormatFeatures, overrideStdFeatures, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, requiresCustomCodec, setCurrentValue, setFeatureMask, setRequestPayloadOnError, setRequestPayloadOnError, setRequestPayloadOnError, setSchema

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • UTF8

      private static final Charset UTF8
    • UTF8_UNIT_CODES

      private static final int[] UTF8_UNIT_CODES
    • MATH_POW_2_10

      private static final double MATH_POW_2_10
    • MATH_POW_2_NEG14

      private static final double MATH_POW_2_NEG14
    • LONGEST_NON_CHUNKED_BINARY

      protected static final int LONGEST_NON_CHUNKED_BINARY
      See Also:
    • CBOR_READ_CAPABILITIES

      protected static final com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamReadCapability> CBOR_READ_CAPABILITIES
    • _objectCodec

      protected com.fasterxml.jackson.core.ObjectCodec _objectCodec
      Codec used for data binding when (if) requested.
    • _ioContext

      protected final com.fasterxml.jackson.core.io.IOContext _ioContext
      I/O context for this reader. It handles buffer allocation for the reader.
    • _streamReadConstraints

      protected final com.fasterxml.jackson.core.StreamReadConstraints _streamReadConstraints
      Since:
      2.17
    • _closed

      protected boolean _closed
      Flag that indicates whether parser is closed or not. Gets set when parser is either closed by explicit call (close()) or when end-of-input is reached.
    • _inputPtr

      protected int _inputPtr
      Pointer to next available character in buffer
    • _inputEnd

      protected int _inputEnd
      Index of character after last available one in the buffer.
    • _currInputProcessed

      protected long _currInputProcessed
      Number of characters/bytes that were contained in previous blocks (blocks that were already processed prior to the current buffer).
    • _currInputRow

      protected int _currInputRow
      Current row location of current point in input buffer, starting from 1, if available.
    • _currInputRowStart

      protected int _currInputRowStart
      Current index of the first character of the current row in input buffer. Needed to calculate column position, if necessary; benefit of not having column itself is that this only has to be updated once per line.
    • _tokenInputTotal

      protected long _tokenInputTotal
      Total number of bytes/characters read before start of current token. For big (gigabyte-sized) sizes are possible, needs to be long, unlike pointers and sizes related to in-memory buffers.
    • _tokenInputRow

      protected int _tokenInputRow
      Input row on which current token starts, 1-based
    • _tokenInputCol

      protected int _tokenInputCol
      Column on input row that current token starts; 0-based (although in the end it'll be converted to 1-based)
    • _streamReadContext

      protected CBORReadContext _streamReadContext
      Information about parser context, context in which the next token is to be parsed (root, array, object).

      NOTE: before 2.13 was "_parsingContext"

    • _textBuffer

      protected final com.fasterxml.jackson.core.util.TextBuffer _textBuffer
      Buffer that contains contents of String values, including field names if necessary (name split across boundary, contains escape sequence, or access needed to char array)
    • _nameCopyBuffer

      protected char[] _nameCopyBuffer
      Temporary buffer that is needed if field name is accessed using getTextCharacters() method (instead of String returning alternatives)
    • _nameCopied

      protected boolean _nameCopied
      Flag set to indicate whether the field name is available from the name copy buffer or not (in addition to its String representation being available via read context)
    • _byteArrayBuilder

      protected com.fasterxml.jackson.core.util.ByteArrayBuilder _byteArrayBuilder
      ByteArrayBuilder is needed if 'getBinaryValue' is called. If so, we better reuse it for remainder of content.
    • _binaryValue

      protected byte[] _binaryValue
      We will hold on to decoded binary data, for duration of current event, so that multiple calls to getBinaryValue(com.fasterxml.jackson.core.Base64Variant) will not need to decode data more than once.
    • _chunkLeft

      private int _chunkLeft
      Helper variables used when dealing with chunked content.
    • _chunkEnd

      private int _chunkEnd
      Helper variables used when dealing with chunked content.
    • _tagValues

      protected CBORParser.TagList _tagValues
      We will keep track of tag values for possible future use.
      Since:
      2.15
    • _tokenIncomplete

      protected boolean _tokenIncomplete
      Flag that indicates that the current token has not yet been fully processed, and needs to be finished for some access (or skipped to obtain the next token)
    • _typeByte

      protected int _typeByte
      Type byte of the current token
    • _stringRefs

      protected CBORParser.StringRefListStack _stringRefs
      Stack of text and binary string references.
      Since:
      2.15
    • _sharedString

      protected String _sharedString
      Shared string that should be used in place of _textBuffer when a string reference is used.
      Since:
      2.15
    • _inputStream

      protected InputStream _inputStream
      Input stream that can be used for reading more content, if one in use. May be null, if input comes just as a full buffer, or if the stream has been closed.
    • _inputBuffer

      protected byte[] _inputBuffer
      Current buffer from which data is read; generally data is read into buffer from input source, but in some cases pre-loaded buffer is handed to the parser.
    • _bufferRecyclable

      protected boolean _bufferRecyclable
      Flag that indicates whether the input buffer is recycable (and needs to be returned to recycler once we are done) or not.

      If it is not, it also means that parser can NOT modify underlying buffer.

    • _symbols

      protected final com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer _symbols
      Symbol table that contains field names encountered so far
    • _quadBuffer

      protected int[] _quadBuffer
      Temporary buffer used for name parsing.
    • _quad1

      protected int _quad1
      Quads used for hash calculation
    • _quad2

      protected int _quad2
      Quads used for hash calculation
    • _quad3

      protected int _quad3
      Quads used for hash calculation
    • _symbolsCanonical

      protected final boolean _symbolsCanonical
      Marker flag to indicate that standard symbol handling is used (one with symbol table assisted canonicalization. May be disabled in which case alternate stream-line, non-canonicalizing handling is used: usually due to set of symbols (Object property names) is unbounded and will not benefit from canonicalization attempts.
      Since:
      2.13
    • BI_MIN_INT

      static final BigInteger BI_MIN_INT
    • BI_MAX_INT

      static final BigInteger BI_MAX_INT
    • BI_MIN_LONG

      static final BigInteger BI_MIN_LONG
    • BI_MAX_LONG

      static final BigInteger BI_MAX_LONG
    • BD_MIN_LONG

      static final BigDecimal BD_MIN_LONG
    • BD_MAX_LONG

      static final BigDecimal BD_MAX_LONG
    • BD_MIN_INT

      static final BigDecimal BD_MIN_INT
    • BD_MAX_INT

      static final BigDecimal BD_MAX_INT
    • _numTypesValid

      protected int _numTypesValid
      Bitfield that indicates which numeric representations have been calculated for the current type
    • _numberInt

      protected int _numberInt
    • _numberLong

      protected long _numberLong
    • _numberFloat

      protected float _numberFloat
    • _numberDouble

      protected double _numberDouble
    • _numberBigInt

      protected BigInteger _numberBigInt
    • _numberBigDecimal

      protected BigDecimal _numberBigDecimal
    • BIT_63

      private static final BigInteger BIT_63
  • Constructor Details

    • CBORParser

      public CBORParser(com.fasterxml.jackson.core.io.IOContext ctxt, int parserFeatures, int cborFeatures, com.fasterxml.jackson.core.ObjectCodec codec, com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer sym, InputStream in, byte[] inputBuffer, int start, int end, boolean bufferRecyclable)
  • Method Details

    • streamReadConstraints

      public com.fasterxml.jackson.core.StreamReadConstraints streamReadConstraints()
      Overrides:
      streamReadConstraints in class com.fasterxml.jackson.core.JsonParser
    • getCodec

      public com.fasterxml.jackson.core.ObjectCodec getCodec()
      Specified by:
      getCodec in class com.fasterxml.jackson.core.JsonParser
    • setCodec

      public void setCodec(com.fasterxml.jackson.core.ObjectCodec c)
      Specified by:
      setCodec in class com.fasterxml.jackson.core.JsonParser
    • 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.JsonParser
    • getFormatFeatures

      public int getFormatFeatures()
      Overrides:
      getFormatFeatures in class com.fasterxml.jackson.core.JsonParser
    • getReadCapabilities

      public com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamReadCapability> getReadCapabilities()
      Overrides:
      getReadCapabilities in class com.fasterxml.jackson.core.JsonParser
    • getCurrentTag

      public int getCurrentTag()
      Method that can be used to access tag id associated with the most recently decoded value (whether completely, for scalar values, or partially, for Objects/Arrays), if any. If no tag was associated with it, -1 is returned.
      Since:
      2.5
    • getCurrentTags

      public CBORParser.TagList getCurrentTags()
      Method that can be used to access all tag ids associated with the most recently decoded value (whether completely, for scalar values, or partially, for Objects/Arrays), if any.
      Since:
      2.15
    • releaseBuffered

      public int releaseBuffered(OutputStream out) throws IOException
      Overrides:
      releaseBuffered in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getInputSource

      public Object getInputSource()
      Overrides:
      getInputSource in class com.fasterxml.jackson.core.JsonParser
    • currentLocation

      public com.fasterxml.jackson.core.JsonLocation currentLocation()
      Overridden since we do not really have character-based locations, but we do have byte offset to specify.
      Overrides:
      currentLocation in class com.fasterxml.jackson.core.JsonParser
    • currentTokenLocation

      public com.fasterxml.jackson.core.JsonLocation currentTokenLocation()
      Overridden since we do not really have character-based locations, but we do have byte offset to specify.
      Overrides:
      currentTokenLocation in class com.fasterxml.jackson.core.JsonParser
    • getCurrentLocation

      @Deprecated public com.fasterxml.jackson.core.JsonLocation getCurrentLocation()
      Deprecated.
      Specified by:
      getCurrentLocation in class com.fasterxml.jackson.core.JsonParser
    • getTokenLocation

      @Deprecated public com.fasterxml.jackson.core.JsonLocation getTokenLocation()
      Deprecated.
      Specified by:
      getTokenLocation in class com.fasterxml.jackson.core.JsonParser
    • currentName

      public String currentName() throws IOException
      Method that can be called to get the name associated with the current event.
      Overrides:
      currentName in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getCurrentName

      @Deprecated public String getCurrentName() throws IOException
      Deprecated.
      Specified by:
      getCurrentName in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • overrideCurrentName

      public void overrideCurrentName(String name)
      Specified by:
      overrideCurrentName in class com.fasterxml.jackson.core.base.ParserMinimalBase
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • isClosed

      public boolean isClosed()
      Specified by:
      isClosed in class com.fasterxml.jackson.core.base.ParserMinimalBase
    • getParsingContext

      public CBORReadContext getParsingContext()
      Specified by:
      getParsingContext in class com.fasterxml.jackson.core.base.ParserMinimalBase
    • hasTextCharacters

      public boolean hasTextCharacters()
      Specified by:
      hasTextCharacters in class com.fasterxml.jackson.core.base.ParserMinimalBase
    • _releaseBuffers

      protected void _releaseBuffers() throws IOException
      Method called to release internal buffers owned by the base reader. This may be called along with _closeInput() (for example, when explicitly closing this reader instance), or separately (if need be).
      Throws:
      IOException
    • nextToken

      public com.fasterxml.jackson.core.JsonToken nextToken() throws IOException
      Specified by:
      nextToken in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • _numberToName

      protected String _numberToName(int ch, boolean neg, CBORParser.TagList tags) throws IOException
      Throws:
      IOException
    • _handleTaggedInt

      protected com.fasterxml.jackson.core.JsonToken _handleTaggedInt(CBORParser.TagList tags) throws IOException
      Throws:
      IOException
    • _handleTaggedBinary

      protected com.fasterxml.jackson.core.JsonToken _handleTaggedBinary(CBORParser.TagList tags) throws IOException
      Throws:
      IOException
    • _handleTaggedArray

      protected com.fasterxml.jackson.core.JsonToken _handleTaggedArray(CBORParser.TagList tags, int len) throws IOException
      Throws:
      IOException
    • _checkNextIsIntInArray

      protected final boolean _checkNextIsIntInArray(String typeDesc) throws IOException
      Heavily simplified method that does a subset of what nextToken() does to basically only (1) determine that we are getting JsonToken.VALUE_NUMBER_INT (if not, return with no processing) and (2) if so, prepare state so that number accessor method will work).

      Note that in particular this method DOES NOT reset state that nextToken() would do, but will change current token type to allow access.

      Throws:
      IOException
    • _checkNextIsEndArray

      protected final boolean _checkNextIsEndArray() throws IOException
      Throws:
      IOException
    • finishToken

      public void finishToken() throws IOException
      Method for forcing full read of current token, even if it might otherwise only be read if data is accessed via getText() and similar methods.
      Overrides:
      finishToken in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • nextFieldName

      public boolean nextFieldName(com.fasterxml.jackson.core.SerializableString str) throws IOException
      Overrides:
      nextFieldName in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • nextFieldName

      public String nextFieldName() throws IOException
      Overrides:
      nextFieldName in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • nextTextValue

      public String nextTextValue() throws IOException
      Overrides:
      nextTextValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • nextIntValue

      public int nextIntValue(int defaultValue) throws IOException
      Overrides:
      nextIntValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • nextLongValue

      public long nextLongValue(long defaultValue) throws IOException
      Overrides:
      nextLongValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • nextBooleanValue

      public Boolean nextBooleanValue() throws IOException
      Overrides:
      nextBooleanValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getText

      public String getText() throws IOException
      Method for accessing textual representation of the current event; if no current event (before first call to nextToken(), or after encountering end-of-input), returns null. Method can be called for any event.
      Specified by:
      getText in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getTextCharacters

      public char[] getTextCharacters() throws IOException
      Specified by:
      getTextCharacters in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getTextLength

      public int getTextLength() throws IOException
      Specified by:
      getTextLength in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getTextOffset

      public int getTextOffset() throws IOException
      Specified by:
      getTextOffset in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getValueAsString

      public String getValueAsString() throws IOException
      Overrides:
      getValueAsString in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getValueAsString

      public String getValueAsString(String defaultValue) throws IOException
      Overrides:
      getValueAsString in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getText

      public int getText(Writer writer) throws IOException
      Overrides:
      getText in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getBinaryValue

      public byte[] getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant) throws IOException
      Specified by:
      getBinaryValue in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getEmbeddedObject

      public Object getEmbeddedObject() throws IOException
      Overrides:
      getEmbeddedObject in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • readBinaryValue

      public int readBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant, OutputStream out) throws IOException
      Overrides:
      readBinaryValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • _readAndWriteBytes

      private int _readAndWriteBytes(OutputStream out, int total) throws IOException
      Throws:
      IOException
    • _getBinaryFromString

      private final byte[] _getBinaryFromString(com.fasterxml.jackson.core.Base64Variant variant) throws IOException
      Throws:
      IOException
    • isNaN

      public boolean isNaN()
      Overrides:
      isNaN in class com.fasterxml.jackson.core.JsonParser
    • getNumberValue

      public Number getNumberValue() throws IOException
      Specified by:
      getNumberValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getNumberValueExact

      public final Number getNumberValueExact() throws IOException
      Overrides:
      getNumberValueExact in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getNumberType

      public com.fasterxml.jackson.core.JsonParser.NumberType getNumberType() throws IOException
      Specified by:
      getNumberType in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getNumberTypeFP

      public com.fasterxml.jackson.core.JsonParser.NumberTypeFP getNumberTypeFP() throws IOException
      Overrides:
      getNumberTypeFP in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getIntValue

      public int getIntValue() throws IOException
      Specified by:
      getIntValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getLongValue

      public long getLongValue() throws IOException
      Specified by:
      getLongValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getBigIntegerValue

      public BigInteger getBigIntegerValue() throws IOException
      Specified by:
      getBigIntegerValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getFloatValue

      public float getFloatValue() throws IOException
      Specified by:
      getFloatValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getDoubleValue

      public double getDoubleValue() throws IOException
      Specified by:
      getDoubleValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getDecimalValue

      public BigDecimal getDecimalValue() throws IOException
      Specified by:
      getDecimalValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • _checkNumericValue

      protected void _checkNumericValue(int expType) throws IOException
      Throws:
      IOException
    • convertNumberToInt

      protected void convertNumberToInt() throws IOException
      Throws:
      IOException
    • convertNumberToLong

      protected void convertNumberToLong() throws IOException
      Throws:
      IOException
    • convertNumberToBigInteger

      protected void convertNumberToBigInteger() throws IOException
      Throws:
      IOException
    • convertNumberToFloat

      protected void convertNumberToFloat() throws IOException
      Throws:
      IOException
    • convertNumberToDouble

      protected void convertNumberToDouble() throws IOException
      Throws:
      IOException
    • convertNumberToBigDecimal

      protected void convertNumberToBigDecimal() throws IOException
      Throws:
      IOException
    • _finishToken

      protected void _finishToken() throws IOException
      Method called to finish parsing of a token so that token contents are retriable
      Throws:
      IOException
    • _finishTextToken

      protected String _finishTextToken(int ch) throws IOException
      Throws:
      IOException
      Since:
      2.6
    • _finishShortText

      private final String _finishShortText(int len) throws IOException
      Throws:
      IOException
    • _finishLongText

      private final String _finishLongText(int len) throws IOException
      Throws:
      IOException
    • _finishChunkedText

      private final void _finishChunkedText() throws IOException
      Throws:
      IOException
    • _nextByte

      private final int _nextByte() throws IOException
      Throws:
      IOException
    • _nextChunkedByte

      private final int _nextChunkedByte() throws IOException
      Throws:
      IOException
    • _nextChunkedByte2

      private final int _nextChunkedByte2() throws IOException
      Throws:
      IOException
    • _finishBytes

      protected byte[] _finishBytes(int len) throws IOException
      Helper called to complete reading of binary data ("byte string") in case contents are needed.
      Throws:
      IOException
    • _finishChunkedBytes

      protected byte[] _finishChunkedBytes() throws IOException
      Throws:
      IOException
    • _finishLongContiguousBytes

      protected byte[] _finishLongContiguousBytes(int expLen) throws IOException
      Throws:
      IOException
    • _decodePropertyName

      protected final com.fasterxml.jackson.core.JsonToken _decodePropertyName() throws IOException
      Throws:
      IOException
    • _decodeContiguousName

      private final String _decodeContiguousName(int len) throws IOException
      Throws:
      IOException
    • _decodeLongerName

      private final String _decodeLongerName(int len) throws IOException
      Throws:
      IOException
    • _decodeChunkedName

      private final String _decodeChunkedName() throws IOException
      Throws:
      IOException
    • _decodeNonStringName

      protected final void _decodeNonStringName(int ch, CBORParser.TagList tags) throws IOException
      Method that handles initial token type recognition for token that has to be either FIELD_NAME or END_OBJECT.
      Throws:
      IOException
    • _findDecodedFromSymbols

      private final String _findDecodedFromSymbols(int len) throws IOException
      Helper method for trying to find specified encoded UTF-8 byte sequence from symbol table; if successful avoids actual decoding to String.

      NOTE: caller MUST ensure input buffer has enough content.

      Throws:
      IOException
    • _findDecodedLong

      private final String _findDecodedLong(int len, int q1, int q2) throws IOException
      Method for locating names longer than 8 bytes (in UTF-8)
      Throws:
      IOException
    • _addDecodedToSymbols

      private final String _addDecodedToSymbols(int len, String name) throws IOException
      Throws:
      IOException
    • _growArrayTo

      private static int[] _growArrayTo(int[] arr, int minSize)
    • _padQuadForNulls

      private static final int _padQuadForNulls(int firstByte)
    • _skipIncomplete

      protected void _skipIncomplete() throws IOException
      Method called to skip remainders of an incomplete token, when contents themselves will not be needed any more. Only called or byte array and text.
      Throws:
      IOException
    • _skipChunked

      protected void _skipChunked(int expectedType) throws IOException
      Throws:
      IOException
    • _skipBytesL

      protected void _skipBytesL(long llen) throws IOException
      Throws:
      IOException
    • _skipBytes

      protected void _skipBytes(int len) throws IOException
      Throws:
      IOException
    • _decodeTag

      private final int _decodeTag(int lowBits) throws IOException
      Throws:
      IOException
    • _decodeExplicitLength

      private final int _decodeExplicitLength(int lowBits) throws IOException
      Method used to decode explicit length of a variable-length value (or, for indefinite/chunked, indicate that one is not known). Note that long (64-bit) length is only allowed if it fits in 32-bit signed int, for now; expectation being that longer values are always encoded as chunks.
      Throws:
      IOException
    • _decodeChunkLength

      private int _decodeChunkLength(int expType) throws IOException
      Throws:
      IOException
    • _decodeHalfSizeFloat

      private float _decodeHalfSizeFloat() throws IOException
      Throws:
      IOException
    • _decode8Bits

      private final int _decode8Bits() throws IOException
      Throws:
      IOException
    • _decode16Bits

      private final int _decode16Bits() throws IOException
      Throws:
      IOException
    • _slow16

      private final int _slow16() throws IOException
      Throws:
      IOException
    • _decode32Bits

      private final int _decode32Bits() throws IOException
      Throws:
      IOException
    • _slow32

      private final int _slow32() throws IOException
      Throws:
      IOException
    • _decode64Bits

      private final long _decode64Bits() throws IOException
      Throws:
      IOException
    • _slow64

      private final long _slow64() throws IOException
      Throws:
      IOException
    • _long

      private static final long _long(int i1, int i2)
    • _decodeUndefinedValue

      protected com.fasterxml.jackson.core.JsonToken _decodeUndefinedValue() throws IOException
      Helper method to encapsulate details of handling of mysterious `undefined` value that is allowed to be used as something encoder could not handle (as per spec), whatever the heck that should be. Current definition for 2.9 is that we will be return JsonToken.VALUE_NULL, but for later versions it is likely that we will alternatively allow decoding as JsonToken.VALUE_EMBEDDED_OBJECT with "embedded value" of `null`.
      Throws:
      IOException
      Since:
      2.9.6
    • _decodeSimpleValue

      public com.fasterxml.jackson.core.JsonToken _decodeSimpleValue(int lowBits, int ch) throws IOException
      Helper method that deals with details of decoding unallocated "simple values" and exposing them as expected token.

      As of Jackson 2.12, simple values are exposed as JsonToken.VALUE_NUMBER_INTs, but in later versions this is planned to be changed to separate value type.

      Throws:
      IOException
      Since:
      2.12
    • _decodeUTF8_3

      private final int _decodeUTF8_3(int c1) throws IOException
      Throws:
      IOException
    • _decodeChunkedUTF8_3

      private final int _decodeChunkedUTF8_3(int c1) throws IOException
      Throws:
      IOException
    • _decodeUTF8_4

      private final int _decodeUTF8_4(int c) throws IOException
      Returns:
      Character value minus 0x10000; this so that caller can readily expand it to actual surrogates
      Throws:
      IOException
    • _decodeChunkedUTF8_4

      private final int _decodeChunkedUTF8_4(int c) throws IOException
      Throws:
      IOException
    • loadMore

      protected boolean loadMore() throws IOException
      Throws:
      IOException
    • loadMoreGuaranteed

      protected void loadMoreGuaranteed() throws IOException
      Throws:
      IOException
    • _loadToHaveAtLeast

      protected final void _loadToHaveAtLeast(int minAvailable) throws IOException
      Helper method that will try to load at least specified number bytes in input buffer, possible moving existing data around if necessary
      Throws:
      IOException
    • _tryToLoadToHaveAtLeast

      protected final boolean _tryToLoadToHaveAtLeast(int minAvailable) throws IOException
      Throws:
      IOException
    • _getByteArrayBuilder

      protected com.fasterxml.jackson.core.util.ByteArrayBuilder _getByteArrayBuilder()
    • _closeInput

      protected void _closeInput() throws IOException
      Throws:
      IOException
    • _handleEOF

      protected void _handleEOF() throws com.fasterxml.jackson.core.JsonParseException
      Specified by:
      _handleEOF in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      com.fasterxml.jackson.core.JsonParseException
    • _eofAsNextToken

      protected com.fasterxml.jackson.core.JsonToken _eofAsNextToken() throws IOException
      Throws:
      IOException
    • _invalidToken

      protected void _invalidToken(int ch) throws com.fasterxml.jackson.core.JsonParseException
      Throws:
      com.fasterxml.jackson.core.JsonParseException
    • _reportUnexpectedBreak

      protected <T> T _reportUnexpectedBreak() throws IOException
      Throws:
      IOException
    • _reportInvalidInitial

      protected void _reportInvalidInitial(int mask) throws com.fasterxml.jackson.core.JsonParseException
      Throws:
      com.fasterxml.jackson.core.JsonParseException
    • _reportInvalidOther

      protected void _reportInvalidOther(int mask) throws com.fasterxml.jackson.core.JsonParseException
      Throws:
      com.fasterxml.jackson.core.JsonParseException
    • _reportInvalidOther

      protected void _reportInvalidOther(int mask, int ptr) throws com.fasterxml.jackson.core.JsonParseException
      Throws:
      com.fasterxml.jackson.core.JsonParseException
    • _reportIncompleteBinaryRead

      protected void _reportIncompleteBinaryRead(int expLen, int actLen) throws IOException
      Throws:
      IOException
    • _reportTruncatedUTF8InName

      private String _reportTruncatedUTF8InName(int strLenBytes, int truncatedCharOffset, int firstUTFByteValue, int bytesExpected) throws IOException
      Throws:
      IOException
    • _bigPositive

      private final BigInteger _bigPositive(long l)
    • _bigNegative

      private final BigInteger _bigNegative(long l)
    • createChildArrayContext

      private void createChildArrayContext(int len) throws IOException
      Throws:
      IOException
    • createChildObjectContext

      private void createChildObjectContext(int len) throws IOException
      Throws:
      IOException