com.fasterxml.jackson.dataformat.smile.async

## Class NonBlockingParserImpl

- java.lang.Object
- - com.fasterxml.jackson.core.JsonParser
  - - com.fasterxml.jackson.core.base.ParserMinimalBase
    - - com.fasterxml.jackson.core.base.ParserBase
      - - com.fasterxml.jackson.dataformat.smile.async.NonBlockingParserImpl

All Implemented Interfaces:
  com.fasterxml.jackson.core.Versioned, NonBlockingInputFeeder, NonBlockingParser, Closeable, AutoCloseable

    public class NonBlockingParserImpl
    extends com.fasterxml.jackson.core.base.ParserBase
    implements NonBlockingParser, NonBlockingInputFeeder

### Nested Class Summary

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

`com.fasterxml.jackson.core.JsonParser.Feature, com.fasterxml.jackson.core.JsonParser.NumberType`

### Field Summary

Fields
`protected boolean` `_cfgRequireHeader`
`protected int` `_currQuad` Bytes parsed for the current, incomplete, quad
`protected int` `_currQuadBytes` Number of bytes pending/buffered, stored in `_currQuad`
`protected boolean` `_endOfInput` Flag that is sent when calling application indicates that there will be no more input to parse.
`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` This buffer is actually provided via `NonBlockingInputFeeder`
`protected boolean` `_mayContainRawBinary` Flag that indicates whether content can legally have raw (unquoted) binary data.
`protected com.fasterxml.jackson.core.ObjectCodec` `_objectCodec` Codec used for data binding when (if) requested.
`protected int` `_origBufferLen` In addition to current buffer pointer, and end pointer, we will also need to know number of bytes originally contained.
`protected int` `_pendingInt` For 32-bit values, we may use this for combining values
`protected long` `_pendingLong` For 64-bit values, we may use this for combining values
`protected int[]` `_quadBuffer` Temporary buffer used for name parsing.
`protected int` `_quadCount` Number of complete quads parsed for current name (quads themselves are stored in `_quadBuffer`).
`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 int` `_state` Current main decoding state
`protected int` `_substate` Addition indicator within state; contextually relevant for just that state
`protected com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer` `_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 static int` `STATE_HEADER` State for recognized header marker, either in-feed or initial.
`protected static int` `STATE_INITIAL` State right after parser has been constructed: waiting for header (which may or may not be mandatory).
`protected static int` `STATE_LONG_ASCII`
`protected static int` `STATE_LONG_SHARED`
`protected static int` `STATE_LONG_UNICODE`
`protected static int` `STATE_NUMBER_BIGDEC`
`protected static int` `STATE_NUMBER_BIGINT`
`protected static int` `STATE_NUMBER_DOUBLE`
`protected static int` `STATE_NUMBER_FLOAT`
`protected static int` `STATE_NUMBER_INT`
`protected static int` `STATE_NUMBER_LONG`
`protected static int` `STATE_QUOTED_BINARY`
`protected static int` `STATE_RAW_BINARY`
`protected static int` `STATE_SHORT_ASCII`
`protected static int` `STATE_SHORT_UNICODE`
`protected static int` `STATE_TOKEN_COMPLETE` State in which we are right after decoding a full token.

### Fields inherited from class com.fasterxml.jackson.core.base.ParserBase

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

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

`_currToken, _lastClearedToken, BD_MAX_INT, BD_MAX_LONG, BD_MIN_INT, BD_MIN_LONG, BI_MAX_INT, BI_MAX_LONG, BI_MIN_INT, BI_MIN_LONG, 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, 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`

### Constructor Summary

Constructors
Constructor and Description
`NonBlockingParserImpl(com.fasterxml.jackson.core.io.IOContext ctxt, int parserFeatures, int smileFeatures, com.fasterxml.jackson.core.ObjectCodec codec, com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer sym)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`protected void` `_closeInput()`
`protected void` `_finishString()`
`protected com.fasterxml.jackson.core.JsonToken` `_finishToken()` Method called to finish parsing of a token, given partial decoded state.
`protected com.fasterxml.jackson.core.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)`
`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 static SmileBufferRecycler<String>` `_smileBufferRecycler()`
`protected void` `_throwInvalidState(String desc)`
`void` `close()`
`void` `endOfInput()` Method that should be called after last chunk of data to parse has been fed (with `NonBlockingInputFeeder.feedInput(byte[], int, int)`); can be called regardless of what `NonBlockingInputFeeder.needMoreInput()` returns.
`void` `feedInput(byte[] buf, int start, int len)` Method that can be called to feed more data, if (and only if) `NonBlockingInputFeeder.needMoreInput()` returns true.
`byte[]` `getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant)`
`com.fasterxml.jackson.core.ObjectCodec` `getCodec()`
`com.fasterxml.jackson.core.JsonLocation` `getCurrentLocation()` Overridden since we do not really have character-based locations, but we do have byte offset to specify.
`String` `getCurrentName()`
`Object` `getEmbeddedObject()`
`Object` `getInputSource()`
`com.fasterxml.jackson.core.JsonParser.NumberType` `getNumberType()`
`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()`
`int` `getTextLength()`
`int` `getTextOffset()`
`com.fasterxml.jackson.core.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()`
`protected boolean` `loadMore()`
`boolean` `mayContainRawBinary()`
`boolean` `needMoreInput()` Method called to check whether it is ok to feed more data: parser returns true if it has no more content to parse (and it is ok to feed more); otherwise false (and no data should yet be fed).
`com.fasterxml.jackson.core.JsonToken` `nextToken()`
`com.fasterxml.jackson.core.JsonToken` `peekNextToken()` Method that can be called when current token is not yet available via `JsonParser.getCurrentToken()`, to try to figure out what kind of token will be eventually returned once the whole token is decoded, if known.
`int` `readBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant, OutputStream out)`
`int` `releaseBuffered(OutputStream out)`
`void` `setCodec(com.fasterxml.jackson.core.ObjectCodec c)`
`com.fasterxml.jackson.core.Version` `version()`

### Methods inherited from class com.fasterxml.jackson.core.base.ParserBase

`_checkStdFeatureChanges, _decodeBase64Escape, _decodeBase64Escape, _decodeEscaped, _eofAsNextChar, _getByteArrayBuilder, _getSourceReference, _handleEOF, _parseIntValue, _reportMismatchedEndMarker, convertNumberToBigDecimal, convertNumberToBigInteger, convertNumberToDouble, convertNumberToInt, convertNumberToLong, disable, enable, getBigIntegerValue, getCurrentValue, getDecimalValue, getDoubleValue, getFloatValue, getIntValue, getLongValue, getNumberValue, getParsingContext, getTokenCharacterOffset, getTokenColumnNr, getTokenLineNr, growArrayBy, isClosed, isNaN, loadMoreGuaranteed, overrideCurrentName, overrideStdFeatures, reportInvalidBase64Char, reportInvalidBase64Char, reset, resetAsNaN, resetFloat, resetInt, setCurrentValue, setFeatureMask`

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

`_ascii, _asciiBytes, _constructError, _decodeBase64, _getCharDesc, _handleUnrecognizedCharacterEscape, _hasTextualNull, _reportError, _reportError, _reportError, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOFInValue, _reportInvalidEOFInValue, _reportMissingRootWS, _reportUnexpectedChar, _throwInternal, _throwInvalidSpace, _throwUnquotedSpace, _wrapError, clearCurrentToken, currentToken, currentTokenId, getCurrentToken, getCurrentTokenId, getLastClearedToken, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, getValueAsString, getValueAsString, hasCurrentToken, hasToken, hasTokenId, isExpectedStartArrayToken, isExpectedStartObjectToken, nextValue, reportInvalidNumber, reportOverflowInt, reportOverflowLong, reportUnexpectedNumberChar, skipChildren`

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

`_codec, _constructError, _reportUnsupportedOperation, canParseAsync, canReadObjectId, canReadTypeId, canUseSchema, configure, currentName, finishToken, getBinaryValue, getBooleanValue, getByteValue, getFeatureMask, getFormatFeatures, getNonBlockingInputFeeder, getObjectId, getSchema, getShortValue, getText, getTypeId, getValueAsBoolean, getValueAsDouble, isEnabled, nextBooleanValue, nextFieldName, nextFieldName, nextIntValue, nextLongValue, nextTextValue, overrideFormatFeatures, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, requiresCustomCodec, setRequestPayloadOnError, setRequestPayloadOnError, setRequestPayloadOnError, setSchema`

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

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

### Field Detail

#### STATE_INITIAL

    protected static final int STATE_INITIAL

State right after parser has been constructed: waiting for header (which may or may not be mandatory).

See Also:
  Constant Field Values

#### STATE_HEADER

    protected static final int STATE_HEADER

State for recognized header marker, either in-feed or initial.

See Also:
  Constant Field Values

#### STATE_TOKEN_COMPLETE

    protected static final int STATE_TOKEN_COMPLETE

State in which we are right after decoding a full token.

See Also:
  Constant Field Values

#### STATE_NUMBER_INT

    protected static final int STATE_NUMBER_INT

See Also:
  Constant Field Values

#### STATE_NUMBER_LONG

    protected static final int STATE_NUMBER_LONG

See Also:
  Constant Field Values

#### STATE_NUMBER_BIGINT

    protected static final int STATE_NUMBER_BIGINT

See Also:
  Constant Field Values

#### STATE_NUMBER_FLOAT

    protected static final int STATE_NUMBER_FLOAT

See Also:
  Constant Field Values

#### STATE_NUMBER_DOUBLE

    protected static final int STATE_NUMBER_DOUBLE

See Also:
  Constant Field Values

#### STATE_NUMBER_BIGDEC

    protected static final int STATE_NUMBER_BIGDEC

See Also:
  Constant Field Values

#### STATE_SHORT_ASCII

    protected static final int STATE_SHORT_ASCII

See Also:
  Constant Field Values

#### STATE_SHORT_UNICODE

    protected static final int STATE_SHORT_UNICODE

See Also:
  Constant Field Values

#### STATE_LONG_ASCII

    protected static final int STATE_LONG_ASCII

See Also:
  Constant Field Values

#### STATE_LONG_UNICODE

    protected static final int STATE_LONG_UNICODE

See Also:
  Constant Field Values

#### STATE_LONG_SHARED

    protected static final int STATE_LONG_SHARED

See Also:
  Constant Field Values

#### STATE_RAW_BINARY

    protected static final int STATE_RAW_BINARY

See Also:
  Constant Field Values

#### STATE_QUOTED_BINARY

    protected static final int STATE_QUOTED_BINARY

See Also:
  Constant Field Values

#### _objectCodec

    protected com.fasterxml.jackson.core.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.

#### _cfgRequireHeader

    protected final boolean _cfgRequireHeader

#### _smileBufferRecycler

    protected final SmileBufferRecycler<String> _smileBufferRecycler

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

#### _inputBuffer

    protected byte[] _inputBuffer

This buffer is actually provided via `NonBlockingInputFeeder`

#### _origBufferLen

    protected int _origBufferLen

In addition to current buffer pointer, and end pointer, we will also need to know number of bytes originally contained. This is needed to correctly update location information when the block has been completed.

#### _state

    protected int _state

Current main decoding state

#### _substate

    protected int _substate

Addition indicator within state; contextually relevant for just that state

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

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

#### _pendingInt

    protected int _pendingInt

For 32-bit values, we may use this for combining values

#### _pendingLong

    protected long _pendingLong

For 64-bit values, we may use this for combining values

#### _endOfInput

    protected boolean _endOfInput

Flag that is sent when calling application indicates that there will be no more input to parse.

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

#### _quadCount

    protected int _quadCount

Number of complete quads parsed for current name (quads themselves are stored in `_quadBuffer`).

#### _currQuad

    protected int _currQuad

Bytes parsed for the current, incomplete, quad

#### _currQuadBytes

    protected int _currQuadBytes

Number of bytes pending/buffered, stored in `_currQuad`

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

#### NonBlockingParserImpl

    public NonBlockingParserImpl(com.fasterxml.jackson.core.io.IOContext ctxt,
                                 int parserFeatures,
                                 int smileFeatures,
                                 com.fasterxml.jackson.core.ObjectCodec codec,
                                 com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer sym)

### Method Detail

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

#### handleSignature

    protected boolean handleSignature(boolean consumeFirstByte,
                                      boolean throwException)
                               throws IOException,
                                      com.fasterxml.jackson.core.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`
  `com.fasterxml.jackson.core.JsonParseException`

#### _smileBufferRecycler

    protected static final SmileBufferRecycler<String> _smileBufferRecycler()

#### version

    public com.fasterxml.jackson.core.Version version()

Specified by:
  `version` in interface `com.fasterxml.jackson.core.Versioned`
Overrides:
  `version` in class `com.fasterxml.jackson.core.base.ParserBase`

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

#### getTokenLocation

    public com.fasterxml.jackson.core.JsonLocation getTokenLocation()

Overridden since we do not really have character-based locations, but we do have byte offset to specify.

Overrides:
  `getTokenLocation` in class `com.fasterxml.jackson.core.base.ParserBase`

#### getCurrentLocation

    public com.fasterxml.jackson.core.JsonLocation getCurrentLocation()

Overridden since we do not really have character-based locations, but we do have byte offset to specify.

Overrides:
  `getCurrentLocation` in class `com.fasterxml.jackson.core.base.ParserBase`

#### loadMore

    protected final boolean loadMore()
                              throws IOException

Overrides:
  `loadMore` in class `com.fasterxml.jackson.core.base.ParserBase`
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`

#### _closeInput

    protected void _closeInput()
                        throws IOException

Specified by:
  `_closeInput` in class `com.fasterxml.jackson.core.base.ParserBase`
Throws:
  `IOException`

#### _finishString

    protected void _finishString()
                          throws IOException,
                                 com.fasterxml.jackson.core.JsonParseException

Overrides:
  `_finishString` in class `com.fasterxml.jackson.core.base.ParserBase`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### close

    public void close()
               throws IOException

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Overrides:
  `close` in class `com.fasterxml.jackson.core.base.ParserBase`
Throws:
  `IOException`

#### hasTextCharacters

    public boolean hasTextCharacters()

Overrides:
  `hasTextCharacters` in class `com.fasterxml.jackson.core.base.ParserBase`

#### _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 `com.fasterxml.jackson.core.base.ParserBase`
Throws:
  `IOException`

#### mayContainRawBinary

    public boolean mayContainRawBinary()

#### nextToken

    public com.fasterxml.jackson.core.JsonToken nextToken()
                                                   throws IOException,
                                                          com.fasterxml.jackson.core.JsonParseException

Specified by:
  `nextToken` in class `com.fasterxml.jackson.core.base.ParserMinimalBase`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### getCurrentName

    public String getCurrentName()
                          throws IOException,
                                 com.fasterxml.jackson.core.JsonParseException

Overrides:
  `getCurrentName` in class `com.fasterxml.jackson.core.base.ParserBase`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### getNumberType

    public com.fasterxml.jackson.core.JsonParser.NumberType getNumberType()
                                                                   throws IOException,
                                                                          com.fasterxml.jackson.core.JsonParseException

Overrides:
  `getNumberType` in class `com.fasterxml.jackson.core.base.ParserBase`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### needMoreInput

    public final boolean needMoreInput()

Description copied from interface: `NonBlockingInputFeeder`
Method called to check whether it is ok to feed more data: parser returns true if it has no more content to parse (and it is ok to feed more); otherwise false (and no data should yet be fed).

Specified by:
  `needMoreInput` in interface `NonBlockingInputFeeder`

#### feedInput

    public void feedInput(byte[] buf,
                          int start,
                          int len)
                   throws IOException

Description copied from interface: `NonBlockingInputFeeder`
Method that can be called to feed more data, if (and only if) `NonBlockingInputFeeder.needMoreInput()` returns true.

Specified by:
  `feedInput` in interface `NonBlockingInputFeeder`
Parameters:
  `buf` - Byte array that contains data to feed: caller must ensure data remains stable until it is fully processed (which is true when `NonBlockingInputFeeder.needMoreInput()` returns true)
  `start` - Offset within array where input data to process starts
  `len` - Length of input data within array to process.
Throws:
  `IOException` - if the state is such that this method should not be called (has not yet consumed existing input data, or has been marked as closed)

#### endOfInput

    public void endOfInput()

Description copied from interface: `NonBlockingInputFeeder`
Method that should be called after last chunk of data to parse has been fed (with `NonBlockingInputFeeder.feedInput(byte[], int, int)`); can be called regardless of what `NonBlockingInputFeeder.needMoreInput()` returns. After calling this method, no more data can be fed; and parser assumes no more data will be available.

Specified by:
  `endOfInput` in interface `NonBlockingInputFeeder`

#### peekNextToken

    public com.fasterxml.jackson.core.JsonToken peekNextToken()
                                                       throws IOException,
                                                              com.fasterxml.jackson.core.JsonParseException

Description copied from interface: `NonBlockingParser`
Method that can be called when current token is not yet available via `JsonParser.getCurrentToken()`, to try to figure out what kind of token will be eventually returned once the whole token is decoded, if known. Note that this may return `JsonToken.NOT_AVAILABLE`: this occurs either if current token is known (and thus no more parsing can be done yet), or if not enough content is available to even determine next token type (typically we only need a single byte, but in boundaries zero bytes is available).

Specified by:
  `peekNextToken` in interface `NonBlockingParser`
Returns:
  Token that will eventually be returned with a call to `JsonParser.nextToken()`, if known
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### getText

    public String getText()
                   throws IOException,
                          com.fasterxml.jackson.core.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 `com.fasterxml.jackson.core.base.ParserMinimalBase`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### getTextCharacters

    public char[] getTextCharacters()
                             throws IOException,
                                    com.fasterxml.jackson.core.JsonParseException

Specified by:
  `getTextCharacters` in class `com.fasterxml.jackson.core.base.ParserMinimalBase`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### getTextLength

    public int getTextLength()
                      throws IOException,
                             com.fasterxml.jackson.core.JsonParseException

Specified by:
  `getTextLength` in class `com.fasterxml.jackson.core.base.ParserMinimalBase`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### getTextOffset

    public int getTextOffset()
                      throws IOException,
                             com.fasterxml.jackson.core.JsonParseException

Specified by:
  `getTextOffset` in class `com.fasterxml.jackson.core.base.ParserMinimalBase`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### getBinaryValue

    public byte[] getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant)
                          throws IOException,
                                 com.fasterxml.jackson.core.JsonParseException

Overrides:
  `getBinaryValue` in class `com.fasterxml.jackson.core.base.ParserBase`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### getEmbeddedObject

    public Object getEmbeddedObject()
                             throws IOException,
                                    com.fasterxml.jackson.core.JsonParseException

Overrides:
  `getEmbeddedObject` in class `com.fasterxml.jackson.core.JsonParser`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### readBinaryValue

    public int readBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant,
                               OutputStream out)
                        throws IOException,
                               com.fasterxml.jackson.core.JsonParseException

Overrides:
  `readBinaryValue` in class `com.fasterxml.jackson.core.JsonParser`
Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### _handleFieldName

    protected final com.fasterxml.jackson.core.JsonToken _handleFieldName()
                                                                   throws IOException,
                                                                          com.fasterxml.jackson.core.JsonParseException

Method that handles initial token type recognition for token that has to be either FIELD_NAME or END_OBJECT.

Throws:
  `IOException`
  `com.fasterxml.jackson.core.JsonParseException`

#### _parseNumericValue

    protected void _parseNumericValue(int expType)
                               throws IOException

Overrides:
  `_parseNumericValue` in class `com.fasterxml.jackson.core.base.ParserBase`
Throws:
  `IOException`

#### _finishToken

    protected final com.fasterxml.jackson.core.JsonToken _finishToken()
                                                               throws IOException,
                                                                      com.fasterxml.jackson.core.JsonParseException

Method called to finish parsing of a token, given partial decoded state.

Throws:
  `IOException`
  `com.fasterxml.jackson.core.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 com.fasterxml.jackson.core.JsonParseException

Throws:
  `com.fasterxml.jackson.core.JsonParseException`

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

#### _throwInvalidState

    protected void _throwInvalidState(String desc)