SmileParser (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.smile

## Class SmileParser

- java.lang.Object
- - org.codehaus.jackson.JsonParser
  - - org.codehaus.jackson.impl.JsonParserMinimalBase
    - - org.codehaus.jackson.impl.JsonParserBase
      - - org.codehaus.jackson.smile.SmileParser

- All Implemented Interfaces:
    Closeable, AutoCloseable, Versioned

      public class SmileParser
      extends JsonParserBase

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `SmileParser.Feature` Enumeration that defines all togglable features for Smile generators.

    - ### Nested classes/interfaces inherited from class org.codehaus.jackson.JsonParser

      `JsonParser.NumberType`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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.
    `protected boolean` | `_got32BitFloat` Specific flag that is set when we encountered a 32-bit floating point value; needed since numeric super classes do not track distinction between float and double, but Smile format does, and we want to retain that separation.
    `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.
    `protected InputStream` | `_inputStream` Input stream that can be used for reading more content, if one in use.
    `protected boolean` | `_mayContainRawBinary` Flag that indicates whether content can legally have raw (unquoted) binary data.
    `protected ObjectCodec` | `_objectCodec` Codec used for data binding when (if) requested.
    `protected int` | `_quad1` Quads used for hash calculation
    `protected int` | `_quad2` Quads used for hash calculation
    `protected int[]` | `_quadBuffer` Temporary buffer used for name parsing.
    `protected int` | `_seenNameCount`
    `protected String[]` | `_seenNames` Array of recently seen field names, which may be back referenced by later fields.
    `protected int` | `_seenStringValueCount`
    `protected String[]` | `_seenStringValues` Array of recently seen field names, which may be back referenced by later fields Defaults set to disable handling if no header found.
    `protected SmileBufferRecycler<String>` | `_smileBufferRecycler` Helper object used for low-level recycling of Smile-generator specific buffers.
    `protected static ThreadLocal<SoftReference<SmileBufferRecycler<String>>>` | `_smileRecyclerRef` `ThreadLocal` contains a `SoftReference` to a buffer recycler used to provide a low-cost buffer recycling for Smile-specific buffers.
    `protected BytesToNameCanonicalizer` | `_symbols` Symbol table that contains field names encountered so far
    `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)
    `protected int` | `_typeByte` Type byte of the current token

    - ### Fields inherited from class org.codehaus.jackson.impl.JsonParserBase

      `_binaryValue, _byteArrayBuilder, _closed, _currInputProcessed, _currInputRow, _currInputRowStart, _expLength, _fractLength, _inputEnd, _inputPtr, _intLength, _ioContext, _nameCopied, _nameCopyBuffer, _nextToken, _numberBigDecimal, _numberBigInt, _numberDouble, _numberInt, _numberLong, _numberNegative, _numTypesValid, _parsingContext, _textBuffer, _tokenInputCol, _tokenInputRow, _tokenInputTotal, CHAR_NULL, INT_0, INT_1, INT_2, INT_3, INT_4, INT_5, INT_6, INT_7, INT_8, INT_9, INT_DECIMAL_POINT, INT_e, INT_E, INT_MINUS, INT_PLUS, NR_BIGDECIMAL, NR_BIGINT, NR_DOUBLE, NR_INT, NR_LONG, NR_UNKNOWN`

    - ### Fields inherited from class org.codehaus.jackson.impl.JsonParserMinimalBase

      `INT_APOSTROPHE, INT_ASTERISK, INT_b, INT_BACKSLASH, INT_COLON, INT_COMMA, INT_CR, INT_f, INT_LBRACKET, INT_LCURLY, INT_LF, INT_n, INT_QUOTE, INT_r, INT_RBRACKET, INT_RCURLY, INT_SLASH, INT_SPACE, INT_t, INT_TAB, INT_u`

    - ### Fields inherited from class org.codehaus.jackson.JsonParser

      `_currToken, _features, _lastClearedToken`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SmileParser(IOContext ctxt, int parserFeatures, int smileFeatures, ObjectCodec codec, BytesToNameCanonicalizer sym, InputStream in, byte[] inputBuffer, int start, int end, boolean bufferRecyclable)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `_closeInput()`
    `protected byte[]` | `_decodeBase64(Base64Variant b64variant)`
    `protected void` | `_decodeShortAsciiValue(int len)`
    `protected void` | `_decodeShortUnicodeValue(int len)`
    `protected void` | `_finishNumberToken(int tb)`
    `protected void` | `_finishString()`
    `protected void` | `_finishToken()` Method called to finish parsing of a token so that token contents are retriable
    `protected JsonToken` | `_handleFieldName()` Method that handles initial token type recognition for token that has to be either FIELD_NAME or END_OBJECT.
    `protected boolean` | `_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
    `protected void` | `_parseNumericValue(int expType)` Method that will parse actual numeric value out of a syntactically valid number value.
    `protected void` | `_releaseBuffers()` Method called to release internal buffers owned by the base reader.
    `protected void` | `_reportInvalidChar(int c)`
    `protected void` | `_reportInvalidInitial(int mask)`
    `protected void` | `_reportInvalidOther(int mask)`
    `protected void` | `_reportInvalidOther(int mask, int ptr)`
    `protected void` | `_reportInvalidSharedName(int index)`
    `protected void` | `_reportInvalidSharedStringValue(int index)`
    `protected void` | `_skip7BitBinary()` Helper method for skipping length-prefixed binary data section
    `protected void` | `_skipBytes(int len)`
    `protected void` | `_skipIncomplete()` Method called to skip remainders of an incomplete token, when contents themselves will not be needed any more
    `protected static SmileBufferRecycler<String>` | `_smileBufferRecycler()`
    `void` | `close()` Closes the parser so that no further iteration or data access can be made; will also close the underlying input source if parser either owns the input source, or feature `JsonParser.Feature.AUTO_CLOSE_SOURCE` is enabled.
    `byte[]` | `getBinaryValue(Base64Variant b64variant)` Method that can be used to read (and consume -- results may not be accessible using other methods after the call) base64-encoded binary data included in the current textual JSON value.
    `ObjectCodec` | `getCodec()` Accessor for `ObjectCodec` associated with this parser, if any.
    `JsonLocation` | `getCurrentLocation()` Overridden since we do not really have character-based locations, but we do have byte offset to specify.
    `String` | `getCurrentName()` Method that can be called to get the name associated with the current event.
    `Object` | `getEmbeddedObject()` Accessor that can be called if (and only if) the current token is `JsonToken.VALUE_EMBEDDED_OBJECT`.
    `Object` | `getInputSource()` Method that can be used to get access to object that is used to access input being parsed; this is usually either `InputStream` or `Reader`, depending on what parser was constructed with.
    `JsonParser.NumberType` | `getNumberType()` If current token is of type `JsonToken.VALUE_NUMBER_INT` or `JsonToken.VALUE_NUMBER_FLOAT`, returns one of `JsonParser.NumberType` constants; otherwise returns null.
    `String` | `getText()` 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.
    `char[]` | `getTextCharacters()` Method similar to `JsonParser.getText()`, but that will return underlying (unmodifiable) character array that contains textual value, instead of constructing a String object to contain this information.
    `int` | `getTextLength()` Accessor used with `JsonParser.getTextCharacters()`, to know length of String stored in returned buffer.
    `int` | `getTextOffset()` Accessor used with `JsonParser.getTextCharacters()`, to know offset of the first text content character within buffer.
    `JsonLocation` | `getTokenLocation()` Overridden since we do not really have character-based locations, but we do have byte offset to specify.
    `protected boolean` | `handleSignature(boolean consumeFirstByte, boolean throwException)` Helper method called when it looks like input might contain the signature; and it is necessary to detect and handle signature to get configuration information it might have.
    `boolean` | `hasTextCharacters()` Method that can be used to determine whether calling of `JsonParser.getTextCharacters()` would be the most efficient way to access textual content for the event parser currently points to.
    `protected boolean` | `loadMore()`
    `boolean` | `mayContainRawBinary()`
    `Boolean` | `nextBooleanValue()` Method that fetches next token (as if calling `JsonParser.nextToken()`) and if it is `JsonToken.VALUE_TRUE` or `JsonToken.VALUE_FALSE` returns matching Boolean value; otherwise return null.
    `boolean` | `nextFieldName(SerializableString str)` Method that fetches next token (as if calling `JsonParser.nextToken()`) and verifies whether it is `JsonToken.FIELD_NAME` with specified name and returns result of that comparison.
    `int` | `nextIntValue(int defaultValue)` Method that fetches next token (as if calling `JsonParser.nextToken()`) and if it is `JsonToken.VALUE_NUMBER_INT` returns 32-bit int value; otherwise returns specified default value It is functionally equivalent to:
    `long` | `nextLongValue(long defaultValue)` Method that fetches next token (as if calling `JsonParser.nextToken()`) and if it is `JsonToken.VALUE_NUMBER_INT` returns 64-bit long value; otherwise returns specified default value It is functionally equivalent to:
    `String` | `nextTextValue()` Method that fetches next token (as if calling `JsonParser.nextToken()`) and if it is `JsonToken.VALUE_STRING` returns contained String value; otherwise returns null.
    `JsonToken` | `nextToken()` Main iteration method, which will advance stream enough to determine type of the next token, if any.
    `int` | `releaseBuffered(OutputStream out)` Method that can be called to push back any content that has been read but not consumed by the parser.
    `void` | `setCodec(ObjectCodec c)` Setter that allows defining `ObjectCodec` associated with this parser, if any.

    - ### Methods inherited from class org.codehaus.jackson.impl.JsonParserBase

      `_decodeBase64Escape, _decodeBase64Escape, _decodeEscaped, _getByteArrayBuilder, _handleEOF, _reportMismatchedEndMarker, convertNumberToBigDecimal, convertNumberToBigInteger, convertNumberToDouble, convertNumberToInt, convertNumberToLong, getBigIntegerValue, getDecimalValue, getDoubleValue, getFloatValue, getIntValue, getLongValue, getNumberValue, getParsingContext, getTokenCharacterOffset, getTokenColumnNr, getTokenLineNr, isClosed, loadMoreGuaranteed, reportInvalidBase64Char, reportInvalidBase64Char, reportInvalidNumber, reportOverflowInt, reportOverflowLong, reportUnexpectedNumberChar, reset, resetAsNaN, resetFloat, resetInt, version`

    - ### Methods inherited from class org.codehaus.jackson.impl.JsonParserMinimalBase

      `_constructError, _decodeBase64, _getCharDesc, _handleUnrecognizedCharacterEscape, _reportBase64EOF, _reportError, _reportInvalidBase64, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOFInValue, _reportUnexpectedChar, _throwInternal, _throwInvalidSpace, _throwUnquotedSpace, _wrapError, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsLong, skipChildren`

    - ### Methods inherited from class org.codehaus.jackson.JsonParser

      `_constructError, canUseSchema, clearCurrentToken, configure, disable, disableFeature, enable, enableFeature, getBinaryValue, getBooleanValue, getByteValue, getCurrentToken, getLastClearedToken, getShortValue, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsLong, hasCurrentToken, isEnabled, isExpectedStartArrayToken, isFeatureEnabled, nextValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, setFeature, setSchema`

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

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

- - ### Field Detail

    - #### _objectCodec

          protected ObjectCodec _objectCodec

      Codec used for data binding when (if) requested.

    - #### _mayContainRawBinary

          protected boolean _mayContainRawBinary

      Flag that indicates whether content can legally have raw (unquoted) binary data. Since this information is included both in header and in actual binary data blocks there is redundancy, and we want to ensure settings are compliant. Using application may also want to know this setting in case it does some direct (random) access.

    - #### _smileBufferRecycler

          protected final SmileBufferRecycler<String> _smileBufferRecycler

      Helper object used for low-level recycling of Smile-generator specific buffers.
      Since:
        1.7

    - #### _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.

    - #### _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

    - #### _got32BitFloat

          protected boolean _got32BitFloat

      Specific flag that is set when we encountered a 32-bit floating point value; needed since numeric super classes do not track distinction between float and double, but Smile format does, and we want to retain that separation.

    - #### _symbols

          protected final BytesToNameCanonicalizer _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

    - #### _seenNames

          protected String[] _seenNames

      Array of recently seen field names, which may be back referenced by later fields. Defaults set to enable handling even if no header found.

    - #### _seenNameCount

          protected int _seenNameCount

    - #### _seenStringValues

          protected String[] _seenStringValues

      Array of recently seen field names, which may be back referenced by later fields Defaults set to disable handling if no header found.

    - #### _seenStringValueCount

          protected int _seenStringValueCount

    - #### _smileRecyclerRef

          protected static final ThreadLocal<SoftReference<SmileBufferRecycler<String>>> _smileRecyclerRef

      `ThreadLocal` contains a `SoftReference` to a buffer recycler used to provide a low-cost buffer recycling for Smile-specific buffers.

  - ### Constructor Detail

    - #### SmileParser

          public SmileParser(IOContext ctxt,
                     int parserFeatures,
                     int smileFeatures,
                     ObjectCodec codec,
                     BytesToNameCanonicalizer sym,
                     InputStream in,
                     byte[] inputBuffer,
                     int start,
                     int end,
                     boolean bufferRecyclable)

  - ### Method Detail

    - #### getCodec

          public ObjectCodec getCodec()

      Description copied from class: `JsonParser`
      Accessor for `ObjectCodec` associated with this parser, if any. Codec is used by `JsonParser.readValueAs(Class)` method (and its variants).
      Specified by:
        `getCodec` in class `JsonParser`

    - #### setCodec

          public void setCodec(ObjectCodec c)

      Description copied from class: `JsonParser`
      Setter that allows defining `ObjectCodec` associated with this parser, if any. Codec is used by `JsonParser.readValueAs(Class)` method (and its variants).
      Specified by:
        `setCodec` in class `JsonParser`

    - #### handleSignature

          protected boolean handleSignature(boolean consumeFirstByte,
                                boolean throwException)
                                     throws IOException,
                                            JsonParseException

      Helper method called when it looks like input might contain the signature; and it is necessary to detect and handle signature to get configuration information it might have.
      Returns:
        True if valid signature was found and handled; false if not
      Throws:
        `IOException`
        `JsonParseException`

    - #### _smileBufferRecycler

          protected static final SmileBufferRecycler<String> _smileBufferRecycler()

      Since:
        1.7

    - #### releaseBuffered

          public int releaseBuffered(OutputStream out)
                              throws IOException

      Description copied from class: `JsonParser`
      Method that can be called to push back any content that has been read but not consumed by the parser. This is usually done after reading all content of interest using parser. Content is released by writing it to given stream if possible; if underlying input is byte-based it can released, if not (char-based) it can not.
      Overrides:
        `releaseBuffered` in class `JsonParser`
      Returns:
        -1 if the underlying content source is not byte based (that is, input can not be sent to `OutputStream`; otherwise number of bytes released (0 if there was nothing to release)
      Throws:
        `IOException` - if write to stream threw exception

    - #### getInputSource

          public Object getInputSource()

      Description copied from class: `JsonParser`
      Method that can be used to get access to object that is used to access input being parsed; this is usually either `InputStream` or `Reader`, depending on what parser was constructed with. Note that returned value may be null in some cases; including case where parser implementation does not want to exposed raw source to caller. In cases where input has been decorated, object returned here is the decorated version; this allows some level of interaction between users of parser and decorator object.

      In general use of this accessor should be considered as "last effort", i.e. only used if no other mechanism is applicable.

      Overrides:
        `getInputSource` in class `JsonParser`

    - #### getTokenLocation

          public JsonLocation getTokenLocation()

      Overridden since we do not really have character-based locations, but we do have byte offset to specify.
      Overrides:
        `getTokenLocation` in class `JsonParserBase`

    - #### getCurrentLocation

          public JsonLocation getCurrentLocation()

      Overridden since we do not really have character-based locations, but we do have byte offset to specify.
      Overrides:
        `getCurrentLocation` in class `JsonParserBase`

    - #### loadMore

          protected final boolean loadMore()
                                    throws IOException

      Specified by:
        `loadMore` in class `JsonParserBase`
      Throws:
        `IOException`

    - #### _loadToHaveAtLeast

          protected final boolean _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`
      Since:
        1.6

    - #### _closeInput

          protected void _closeInput()
                              throws IOException

      Specified by:
        `_closeInput` in class `JsonParserBase`
      Throws:
        `IOException`

    - #### _finishString

          protected void _finishString()
                                throws IOException,
                                       JsonParseException

      Specified by:
        `_finishString` in class `JsonParserBase`
      Throws:
        `IOException`
        `JsonParseException`

    - #### close

          public void close()
                     throws IOException

      Description copied from class: `JsonParser`
      Closes the parser so that no further iteration or data access can be made; will also close the underlying input source if parser either owns the input source, or feature `JsonParser.Feature.AUTO_CLOSE_SOURCE` is enabled. Whether parser owns the input source depends on factory method that was used to construct instance (so check `JsonFactory` for details, but the general idea is that if caller passes in closable resource (such as `InputStream` or `Reader`) parser does NOT own the source; but if it passes a reference (such as `File` or `URL` and creates stream or reader it does own them.
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Overrides:
        `close` in class `JsonParserBase`
      Throws:
        `IOException`

    - #### hasTextCharacters

          public boolean hasTextCharacters()

      Description copied from class: `JsonParser`
      Method that can be used to determine whether calling of `JsonParser.getTextCharacters()` would be the most efficient way to access textual content for the event parser currently points to.

      Default implementation simply returns false since only actual implementation class has knowledge of its internal buffering state. Implementations are strongly encouraged to properly override this method, to allow efficient copying of content by other code.

      Overrides:
        `hasTextCharacters` in class `JsonParserBase`
      Returns:
        True if parser currently has character array that can be efficiently returned via `JsonParser.getTextCharacters()`; false means that it may or may not exist

    - #### _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).
      Overrides:
        `_releaseBuffers` in class `JsonParserBase`
      Throws:
        `IOException`

    - #### mayContainRawBinary

          public boolean mayContainRawBinary()

    - #### nextToken

          public JsonToken nextToken()
                              throws IOException,
                                     JsonParseException

      Description copied from class: `JsonParser`
      Main iteration method, which will advance stream enough to determine type of the next token, if any. If none remaining (stream has no content other than possible white space before ending), null will be returned.
      Specified by:
        `nextToken` in class `JsonParserMinimalBase`
      Returns:
        Next token from the stream, if any found, or null to indicate end-of-input
      Throws:
        `IOException`
        `JsonParseException`

    - #### getCurrentName

          public String getCurrentName()
                                throws IOException,
                                       JsonParseException

      Description copied from class: `JsonParserBase`
      Method that can be called to get the name associated with the current event.
      Overrides:
        `getCurrentName` in class `JsonParserBase`
      Throws:
        `IOException`
        `JsonParseException`

    - #### getNumberType

          public JsonParser.NumberType getNumberType()
                                              throws IOException,
                                                     JsonParseException

      Description copied from class: `JsonParser`
      If current token is of type `JsonToken.VALUE_NUMBER_INT` or `JsonToken.VALUE_NUMBER_FLOAT`, returns one of `JsonParser.NumberType` constants; otherwise returns null.
      Overrides:
        `getNumberType` in class `JsonParserBase`
      Throws:
        `IOException`
        `JsonParseException`

    - #### nextFieldName

          public boolean nextFieldName(SerializableString str)
                                throws IOException,
                                       JsonParseException

      Description copied from class: `JsonParser`
      Method that fetches next token (as if calling `JsonParser.nextToken()`) and verifies whether it is `JsonToken.FIELD_NAME` with specified name and returns result of that comparison. It is functionally equivalent to:

            return (nextToken() == JsonToken.FIELD_NAME) && str.getValue().equals(getCurrentName());

      but may be faster for parser to verify, and can therefore be used if caller expects to get such a property name from input next.
      Overrides:
        `nextFieldName` in class `JsonParser`
      Parameters:
        `str` - Property name to compare next token to (if next token is `JsonToken.FIELD_NAME`)``
      Throws:
        `IOException`
        `JsonParseException`

    - #### nextTextValue

          public String nextTextValue()
                               throws IOException,
                                      JsonParseException

      Description copied from class: `JsonParser`
      Method that fetches next token (as if calling `JsonParser.nextToken()`) and if it is `JsonToken.VALUE_STRING` returns contained String value; otherwise returns null. It is functionally equivalent to:

            return (nextToken() == JsonToken.VALUE_STRING) ? getText() : null;

      but may be faster for parser to process, and can therefore be used if caller expects to get a String value next from input.
      Overrides:
        `nextTextValue` in class `JsonParser`
      Throws:
        `IOException`
        `JsonParseException`

    - #### nextIntValue

          public int nextIntValue(int defaultValue)
                           throws IOException,
                                  JsonParseException

      Description copied from class: `JsonParser`
      Method that fetches next token (as if calling `JsonParser.nextToken()`) and if it is `JsonToken.VALUE_NUMBER_INT` returns 32-bit int value; otherwise returns specified default value It is functionally equivalent to:

            return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getIntValue() : defaultValue;

      but may be faster for parser to process, and can therefore be used if caller expects to get a String value next from input.
      Overrides:
        `nextIntValue` in class `JsonParser`
      Throws:
        `IOException`
        `JsonParseException`

    - #### nextLongValue

          public long nextLongValue(long defaultValue)
                             throws IOException,
                                    JsonParseException

      Description copied from class: `JsonParser`
      Method that fetches next token (as if calling `JsonParser.nextToken()`) and if it is `JsonToken.VALUE_NUMBER_INT` returns 64-bit long value; otherwise returns specified default value It is functionally equivalent to:

            return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getLongValue() : defaultValue;

      but may be faster for parser to process, and can therefore be used if caller expects to get a String value next from input.
      Overrides:
        `nextLongValue` in class `JsonParser`
      Throws:
        `IOException`
        `JsonParseException`

    - #### nextBooleanValue

          public Boolean nextBooleanValue()
                                   throws IOException,
                                          JsonParseException

      Description copied from class: `JsonParser`
      Method that fetches next token (as if calling `JsonParser.nextToken()`) and if it is `JsonToken.VALUE_TRUE` or `JsonToken.VALUE_FALSE` returns matching Boolean value; otherwise return null. It is functionally equivalent to:

            JsonToken t = nextToken();
            if (t == JsonToken.VALUE_TRUE) return Boolean.TRUE;
            if (t == JsonToken.VALUE_FALSE) return Boolean.FALSE;
            return null;

      but may be faster for parser to process, and can therefore be used if caller expects to get a String value next from input.
      Overrides:
        `nextBooleanValue` in class `JsonParser`
      Throws:
        `IOException`
        `JsonParseException`

    - #### getText

          public String getText()
                         throws IOException,
                                JsonParseException

      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 `JsonParserMinimalBase`
      Throws:
        `IOException`
        `JsonParseException`

    - #### getTextCharacters

          public char[] getTextCharacters()
                                   throws IOException,
                                          JsonParseException

      Description copied from class: `JsonParser`
      Method similar to `JsonParser.getText()`, but that will return underlying (unmodifiable) character array that contains textual value, instead of constructing a String object to contain this information. Note, however, that:
      - Textual contents are not guaranteed to start at index 0 (rather, call `JsonParser.getTextOffset()`) to know the actual offset
      - Length of textual contents may be less than the length of returned buffer: call `JsonParser.getTextLength()` for actual length of returned content.

      Note that caller MUST NOT modify the returned character array in any way -- doing so may corrupt current parser state and render parser instance useless.

      The only reason to call this method (over `JsonParser.getText()`) is to avoid construction of a String object (which will make a copy of contents).

      Specified by:
        `getTextCharacters` in class `JsonParserMinimalBase`
      Throws:
        `IOException`
        `JsonParseException`

    - #### getTextLength

          public int getTextLength()
                            throws IOException,
                                   JsonParseException

      Description copied from class: `JsonParser`
      Accessor used with `JsonParser.getTextCharacters()`, to know length of String stored in returned buffer.
      Specified by:
        `getTextLength` in class `JsonParserMinimalBase`
      Returns:
        Number of characters within buffer returned by `JsonParser.getTextCharacters()` that are part of textual content of the current token.
      Throws:
        `IOException`
        `JsonParseException`

    - #### getTextOffset

          public int getTextOffset()
                            throws IOException,
                                   JsonParseException

      Description copied from class: `JsonParser`
      Accessor used with `JsonParser.getTextCharacters()`, to know offset of the first text content character within buffer.
      Specified by:
        `getTextOffset` in class `JsonParserMinimalBase`
      Returns:
        Offset of the first character within buffer returned by `JsonParser.getTextCharacters()` that is part of textual content of the current token.
      Throws:
        `IOException`
        `JsonParseException`

    - #### getBinaryValue

          public byte[] getBinaryValue(Base64Variant b64variant)
                                throws IOException,
                                       JsonParseException

      Description copied from class: `JsonParser`
      Method that can be used to read (and consume -- results may not be accessible using other methods after the call) base64-encoded binary data included in the current textual JSON value. It works similar to getting String value via `JsonParser.getText()` and decoding result (except for decoding part), but should be significantly more performant.

      Note that non-decoded textual contents of the current token are not guaranteed to be accessible after this method is called. Current implementation, for example, clears up textual content during decoding. Decoded binary content, however, will be retained until parser is advanced to the next event.

      Specified by:
        `getBinaryValue` in class `JsonParserMinimalBase`
      Parameters:
        `b64variant` - Expected variant of base64 encoded content (see `Base64Variants` for definitions of "standard" variants).
      Returns:
        Decoded binary data
      Throws:
        `IOException`
        `JsonParseException`

    - #### getEmbeddedObject

          public Object getEmbeddedObject()
                                   throws IOException,
                                          JsonParseException

      Description copied from class: `JsonParser`
      Accessor that can be called if (and only if) the current token is `JsonToken.VALUE_EMBEDDED_OBJECT`. For other token types, null is returned.

      Note: only some specialized parser implementations support embedding of objects (usually ones that are facades on top of non-streaming sources, such as object trees).

      Overrides:
        `getEmbeddedObject` in class `JsonParser`
      Throws:
        `IOException`
        `JsonParseException`

    - #### _decodeBase64

          protected byte[] _decodeBase64(Base64Variant b64variant)
                                  throws IOException,
                                         JsonParseException

      Throws:
        `IOException`
        `JsonParseException`

    - #### _handleFieldName

          protected final JsonToken _handleFieldName()
                                              throws IOException,
                                                     JsonParseException

      Method that handles initial token type recognition for token that has to be either FIELD_NAME or END_OBJECT.
      Throws:
        `IOException`
        `JsonParseException`

    - #### _parseNumericValue

          protected void _parseNumericValue(int expType)
                                     throws IOException,
                                            JsonParseException

      Description copied from class: `JsonParserBase`
      Method that will parse actual numeric value out of a syntactically valid number value. Type it will parse into depends on whether it is a floating point number, as well as its magnitude: smallest legal type (of ones available) is used for efficiency.
      Overrides:
        `_parseNumericValue` in class `JsonParserBase`
      Parameters:
        `expType` - Numeric type that we will immediately need, if any; mostly necessary to optimize handling of floating point numbers
      Throws:
        `IOException`
        `JsonParseException`

    - #### _finishToken

          protected void _finishToken()
                               throws IOException,
                                      JsonParseException

      Method called to finish parsing of a token so that token contents are retriable
      Throws:
        `IOException`
        `JsonParseException`

    - #### _finishNumberToken

          protected final void _finishNumberToken(int tb)
                                           throws IOException,
                                                  JsonParseException

      Throws:
        `IOException`
        `JsonParseException`

    - #### _decodeShortAsciiValue

          protected final void _decodeShortAsciiValue(int len)
                                               throws IOException,
                                                      JsonParseException

      Throws:
        `IOException`
        `JsonParseException`

    - #### _decodeShortUnicodeValue

          protected final void _decodeShortUnicodeValue(int len)
                                                 throws IOException,
                                                        JsonParseException

      Throws:
        `IOException`
        `JsonParseException`

    - #### _skipIncomplete

          protected void _skipIncomplete()
                                  throws IOException,
                                         JsonParseException

      Method called to skip remainders of an incomplete token, when contents themselves will not be needed any more
      Throws:
        `IOException`
        `JsonParseException`

    - #### _skipBytes

          protected void _skipBytes(int len)
                             throws IOException,
                                    JsonParseException

      Throws:
        `IOException`
        `JsonParseException`

    - #### _skip7BitBinary

          protected void _skip7BitBinary()
                                  throws IOException,
                                         JsonParseException

      Helper method for skipping length-prefixed binary data section
      Throws:
        `IOException`
        `JsonParseException`

    - #### _reportInvalidSharedName

          protected void _reportInvalidSharedName(int index)
                                           throws IOException

      Throws:
        `IOException`

    - #### _reportInvalidSharedStringValue

          protected void _reportInvalidSharedStringValue(int index)
                                                  throws IOException

      Throws:
        `IOException`

    - #### _reportInvalidChar

          protected void _reportInvalidChar(int c)
                                     throws JsonParseException

      Throws:
        `JsonParseException`

    - #### _reportInvalidInitial

          protected void _reportInvalidInitial(int mask)
                                        throws JsonParseException

      Throws:
        `JsonParseException`

    - #### _reportInvalidOther

          protected void _reportInvalidOther(int mask)
                                      throws JsonParseException

      Throws:
        `JsonParseException`

    - #### _reportInvalidOther

          protected void _reportInvalidOther(int mask,
                                 int ptr)
                                      throws JsonParseException

      Throws:
        `JsonParseException`