Class NonBlockingParserBase
java.lang.Object
com.fasterxml.jackson.core.JsonParser
com.fasterxml.jackson.core.base.ParserMinimalBase
com.fasterxml.jackson.dataformat.smile.SmileParserBase
com.fasterxml.jackson.dataformat.smile.async.NonBlockingParserBase
- All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned
,Closeable
,AutoCloseable
- Direct Known Subclasses:
NonBlockingByteArrayParser
-
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, com.fasterxml.jackson.core.JsonParser.NumberTypeFP
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.fasterxml.jackson.core.util.ByteArrayBuilder
ByteArrayBuilder is needed if 'getBinaryValue' is called.protected boolean
Flag that is sent when calling application indicates that there will be no more input to parse.protected byte[]
Temporary buffer for holding content if input not contiguous (but can fit in buffer)protected int
Number of bytes buffered in_inputCopy
protected int
Current main decoding stateprotected int
Value of_majorState
after completing a scalar valueprotected int
Addition indicator within state; contextually relevant for just that stateprotected int
Temporary storage for 32-bit values (int, float), as well as length markers for length-prefixed values.protected long
Temporary storage for 64-bit values (long, double), secondary storage for some other things (scale of BigDecimal values)protected static final int
protected static final int
State after non-blocking input source has indicated that no more input is forthcoming AND we have exhausted all the inputprotected static final int
State right after parser has been constructed, before seeing the first byte to know if there's header.protected static final int
protected static final int
protected static final int
State right after parser a root value has been finished, but next token has not yet been recognized.protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
Fields inherited from class com.fasterxml.jackson.dataformat.smile.SmileParserBase
_binaryValue, _closed, _currInputProcessed, _formatFeatures, _inputEnd, _inputPtr, _ioContext, _mayContainRawBinary, _nameCopied, _nameCopyBuffer, _numberBigDecimal, _numberBigInt, _numberDouble, _numberFloat, _numberInt, _numberLong, _numberType, _numTypesValid, _quad1, _quad2, _quad3, _quadBuffer, _seenNameCount, _seenNames, _seenStringValueCount, _seenStringValues, _streamReadConstraints, _streamReadContext, _symbols, _symbolsCanonical, _textBuffer, _tokenOffsetForTotal, DEFAULT_NAME_BUFFER_LENGTH, DEFAULT_STRING_VALUE_BUFFER_LENGTH, LONGEST_NON_CHUNKED_BINARY, NO_STRINGS, SMILE_READ_CAPABILITIES
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, 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
ConstructorsModifierConstructorDescriptionprotected
NonBlockingParserBase
(com.fasterxml.jackson.core.io.IOContext ctxt, int parserFeatures, int smileFeatures, com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer sym) -
Method Summary
Modifier and TypeMethodDescriptionprotected final String
_addDecodedToSymbols
(int len, String name) protected final void
protected final com.fasterxml.jackson.core.JsonToken
protected void
protected final com.fasterxml.jackson.core.JsonToken
protected final com.fasterxml.jackson.core.JsonToken
Helper method called at point when all input has been exhausted and input feeder has indicated no more input will be forthcoming.protected final String[]
_expandSeenNames
(String[] oldShared) Method called to try to expand shared name area to fit one more potentially shared String.private final void
protected final String
_findDecodedFromSymbols
(byte[] inBuf, int inPtr, int len) private final String
_findDecodedLonger
(byte[] inBuf, int inPtr, int len) protected final com.fasterxml.jackson.core.JsonToken
_handleSharedName
(int index) protected final com.fasterxml.jackson.core.JsonToken
_handleSharedString
(int index) void
protected void
protected void
Method called to release internal buffers owned by the base reader.protected void
_reportInvalidInitial
(int mask) protected void
_reportInvalidOther
(int mask, int ptr) protected void
_reportInvalidSharedName
(int index) protected void
_reportInvalidSharedStringValue
(int index) protected void
_reportMissingHeader
(int unmaskedFirstByte) protected final com.fasterxml.jackson.core.JsonToken
protected final com.fasterxml.jackson.core.JsonToken
protected final com.fasterxml.jackson.core.JsonToken
_valueComplete
(com.fasterxml.jackson.core.JsonToken t) boolean
byte[]
getBinaryValue
(com.fasterxml.jackson.core.Base64Variant b64variant) com.fasterxml.jackson.core.ObjectCodec
getCodec()
getText()
Method for accessing textual representation of the current event; if no current event (before first call toParserMinimalBase.nextToken()
, or after encountering end-of-input), returns null.int
char[]
int
int
boolean
int
readBinaryValue
(com.fasterxml.jackson.core.Base64Variant b64variant, OutputStream out) abstract int
void
setCodec
(com.fasterxml.jackson.core.ObjectCodec c) protected com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer
Methods inherited from class com.fasterxml.jackson.dataformat.smile.SmileParserBase
_handleEOF, _releaseBuffers, _reportMismatchedEndMarker, _sourceReference, close, convertNumberToBigDecimal, convertNumberToBigInteger, convertNumberToDouble, convertNumberToFloat, convertNumberToInt, convertNumberToLong, currentLocation, currentName, currentTokenLocation, getBigIntegerValue, getCurrentLocation, getCurrentName, getDecimalValue, getDoubleValue, getFloatValue, getFormatFeatures, getIntValue, getLongValue, getNumberType, getNumberTypeFP, getNumberValue, getNumberValueExact, getParsingContext, getReadCapabilities, getTokenLocation, isClosed, isNaN, mayContainRawBinary, overrideCurrentName, overrideFormatFeatures, streamReadConstraints, 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, getValueAsString, getValueAsString, hasCurrentToken, hasToken, hasTokenId, isExpectedNumberIntToken, isExpectedStartArrayToken, isExpectedStartObjectToken, nextToken, 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, canReadObjectId, canReadTypeId, canUseSchema, configure, currentValue, disable, enable, finishToken, getBinaryValue, getBooleanValue, getByteValue, getCurrentValue, getFeatureMask, getNonBlockingInputFeeder, getNumberValueDeferred, getObjectId, getSchema, getShortValue, getTypeId, getValueAsBoolean, getValueAsDouble, isEnabled, isEnabled, nextBooleanValue, nextFieldName, nextFieldName, nextIntValue, nextLongValue, nextTextValue, overrideStdFeatures, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, requiresCustomCodec, setCurrentValue, setFeatureMask, setRequestPayloadOnError, setRequestPayloadOnError, setRequestPayloadOnError, setSchema
-
Field Details
-
MAJOR_INITIAL
protected static final int MAJOR_INITIALState right after parser has been constructed, before seeing the first byte to know if there's header.- See Also:
-
MAJOR_ROOT
protected static final int MAJOR_ROOTState right after parser a root value has been finished, but next token has not yet been recognized.- See Also:
-
MAJOR_OBJECT_FIELD
protected static final int MAJOR_OBJECT_FIELD- See Also:
-
MAJOR_OBJECT_VALUE
protected static final int MAJOR_OBJECT_VALUE- See Also:
-
MAJOR_ARRAY_ELEMENT
protected static final int MAJOR_ARRAY_ELEMENT- See Also:
-
MAJOR_CLOSED
protected static final int MAJOR_CLOSEDState after non-blocking input source has indicated that no more input is forthcoming AND we have exhausted all the input- See Also:
-
MINOR_HEADER_INITIAL
protected static final int MINOR_HEADER_INITIAL- See Also:
-
MINOR_HEADER_INLINE
protected static final int MINOR_HEADER_INLINE- See Also:
-
MINOR_FIELD_NAME_2BYTE
protected static final int MINOR_FIELD_NAME_2BYTE- See Also:
-
MINOR_FIELD_NAME_LONG
protected static final int MINOR_FIELD_NAME_LONG- See Also:
-
MINOR_FIELD_NAME_SHORT_ASCII
protected static final int MINOR_FIELD_NAME_SHORT_ASCII- See Also:
-
MINOR_FIELD_NAME_SHORT_UNICODE
protected static final int MINOR_FIELD_NAME_SHORT_UNICODE- See Also:
-
MINOR_VALUE_NUMBER_INT
protected static final int MINOR_VALUE_NUMBER_INT- See Also:
-
MINOR_VALUE_NUMBER_LONG
protected static final int MINOR_VALUE_NUMBER_LONG- See Also:
-
MINOR_VALUE_NUMBER_FLOAT
protected static final int MINOR_VALUE_NUMBER_FLOAT- See Also:
-
MINOR_VALUE_NUMBER_DOUBLE
protected static final int MINOR_VALUE_NUMBER_DOUBLE- See Also:
-
MINOR_VALUE_NUMBER_BIGINT_LEN
protected static final int MINOR_VALUE_NUMBER_BIGINT_LEN- See Also:
-
MINOR_VALUE_NUMBER_BIGINT_BODY
protected static final int MINOR_VALUE_NUMBER_BIGINT_BODY- See Also:
-
MINOR_VALUE_NUMBER_BIGDEC_SCALE
protected static final int MINOR_VALUE_NUMBER_BIGDEC_SCALE- See Also:
-
MINOR_VALUE_NUMBER_BIGDEC_LEN
protected static final int MINOR_VALUE_NUMBER_BIGDEC_LEN- See Also:
-
MINOR_VALUE_NUMBER_BIGDEC_BODY
protected static final int MINOR_VALUE_NUMBER_BIGDEC_BODY- See Also:
-
MINOR_VALUE_STRING_SHORT_ASCII
protected static final int MINOR_VALUE_STRING_SHORT_ASCII- See Also:
-
MINOR_VALUE_STRING_SHORT_UNICODE
protected static final int MINOR_VALUE_STRING_SHORT_UNICODE- See Also:
-
MINOR_VALUE_STRING_LONG_ASCII
protected static final int MINOR_VALUE_STRING_LONG_ASCII- See Also:
-
MINOR_VALUE_STRING_LONG_UNICODE
protected static final int MINOR_VALUE_STRING_LONG_UNICODE- See Also:
-
MINOR_VALUE_STRING_SHARED_2BYTE
protected static final int MINOR_VALUE_STRING_SHARED_2BYTE- See Also:
-
MINOR_VALUE_BINARY_RAW_LEN
protected static final int MINOR_VALUE_BINARY_RAW_LEN- See Also:
-
MINOR_VALUE_BINARY_RAW_BODY
protected static final int MINOR_VALUE_BINARY_RAW_BODY- See Also:
-
MINOR_VALUE_BINARY_7BIT_LEN
protected static final int MINOR_VALUE_BINARY_7BIT_LEN- See Also:
-
MINOR_VALUE_BINARY_7BIT_BODY
protected static final int MINOR_VALUE_BINARY_7BIT_BODY- See Also:
-
_majorState
protected int _majorStateCurrent main decoding state -
_minorState
protected int _minorStateAddition indicator within state; contextually relevant for just that state -
_majorStateAfterValue
protected int _majorStateAfterValueValue of_majorState
after completing a scalar value -
_endOfInput
protected boolean _endOfInputFlag that is sent when calling application indicates that there will be no more input to parse. -
_inputCopy
protected byte[] _inputCopyTemporary buffer for holding content if input not contiguous (but can fit in buffer) -
_inputCopyLen
protected int _inputCopyLenNumber of bytes buffered in_inputCopy
-
_pending32
protected int _pending32Temporary storage for 32-bit values (int, float), as well as length markers for length-prefixed values. -
_pending64
protected long _pending64Temporary storage for 64-bit values (long, double), secondary storage for some other things (scale of BigDecimal values) -
_byteArrayBuilder
protected com.fasterxml.jackson.core.util.ByteArrayBuilder _byteArrayBuilderByteArrayBuilder is needed if 'getBinaryValue' is called. If so, we better reuse it for remainder of content.
-
-
Constructor Details
-
NonBlockingParserBase
protected NonBlockingParserBase(com.fasterxml.jackson.core.io.IOContext ctxt, int parserFeatures, int smileFeatures, com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer sym) - Since:
- 2.16
-
-
Method Details
-
getCodec
public com.fasterxml.jackson.core.ObjectCodec getCodec()- Specified by:
getCodec
in classcom.fasterxml.jackson.core.JsonParser
-
setCodec
public void setCodec(com.fasterxml.jackson.core.ObjectCodec c) - Specified by:
setCodec
in classcom.fasterxml.jackson.core.JsonParser
-
canParseAsync
public boolean canParseAsync()- Overrides:
canParseAsync
in classcom.fasterxml.jackson.core.JsonParser
- Since:
- 2.9
-
_releaseBuffers2
protected void _releaseBuffers2()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).- Specified by:
_releaseBuffers2
in classSmileParserBase
-
symbolTableForTests
protected com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer symbolTableForTests() -
releaseBuffered
- Overrides:
releaseBuffered
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getInputSource
- Overrides:
getInputSource
in classcom.fasterxml.jackson.core.JsonParser
-
_closeInput
- Specified by:
_closeInput
in classSmileParserBase
- Throws:
IOException
-
_parseNumericValue
- Specified by:
_parseNumericValue
in classSmileParserBase
- Throws:
IOException
-
hasTextCharacters
public boolean hasTextCharacters()- Specified by:
hasTextCharacters
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getText
Method for accessing textual representation of the current event; if no current event (before first call toParserMinimalBase.nextToken()
, or after encountering end-of-input), returns null. Method can be called for any event.- Specified by:
getText
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
getTextCharacters
- Specified by:
getTextCharacters
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
getTextLength
- Specified by:
getTextLength
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
getTextOffset
- Specified by:
getTextOffset
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
getText
- Overrides:
getText
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getBinaryValue
public byte[] getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant) throws IOException - Specified by:
getBinaryValue
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
getEmbeddedObject
- Overrides:
getEmbeddedObject
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
readBinaryValue
public int readBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant, OutputStream out) throws IOException - Overrides:
readBinaryValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
_startArrayScope
- Throws:
IOException
-
_startObjectScope
- Throws:
IOException
-
_closeArrayScope
- Throws:
IOException
-
_closeObjectScope
- Throws:
IOException
-
_findDecodedFromSymbols
- Throws:
IOException
-
_findDecodedLonger
- Throws:
IOException
-
_addDecodedToSymbols
- Throws:
IOException
-
_expandSeenNames
Method called to try to expand shared name area to fit one more potentially shared String. If area is already at its biggest size, will just clear the area (by setting next-offset to 0) -
_eofAsNextToken
Helper method called at point when all input has been exhausted and input feeder has indicated no more input will be forthcoming.- Throws:
IOException
-
_valueComplete
protected final com.fasterxml.jackson.core.JsonToken _valueComplete(com.fasterxml.jackson.core.JsonToken t) throws IOException - Throws:
IOException
-
_addSeenStringValue
- Throws:
IOException
-
_expandSeenStringValues
-
_initByteArrayBuilder
public void _initByteArrayBuilder() -
_reportMissingHeader
- 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, int ptr) throws com.fasterxml.jackson.core.JsonParseException - Throws:
com.fasterxml.jackson.core.JsonParseException
-