Class SmileParserBase
java.lang.Object
com.fasterxml.jackson.core.JsonParser
com.fasterxml.jackson.core.base.ParserMinimalBase
com.fasterxml.jackson.dataformat.smile.SmileParserBase
- All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned
,Closeable
,AutoCloseable
- Direct Known Subclasses:
NonBlockingParserBase
,SmileParser
public abstract class SmileParserBase
extends com.fasterxml.jackson.core.base.ParserMinimalBase
- Since:
- 2.9
-
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 byte[]
We will hold on to decoded binary data, for duration of current event, so that multiple calls toParserMinimalBase.getBinaryValue(com.fasterxml.jackson.core.Base64Variant)
will not need to decode data more than once.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
Bit flag composed of bits that indicate whichSmileParser.Feature
s are enabled.protected int
Index of character after last available one in the buffer.protected int
Pointer to next available character in bufferprotected final com.fasterxml.jackson.core.io.IOContext
I/O context for this reader.protected boolean
Flag that indicates whether content can legally have raw (unquoted) binary data.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 usingParserMinimalBase.getTextCharacters()
method (instead of String returning alternatives)protected BigDecimal
protected BigInteger
protected double
protected float
protected int
protected long
protected com.fasterxml.jackson.core.JsonParser.NumberType
protected int
Bitfield that indicates which numeric representations have been calculated for the current typeprotected int
Quads used for hash calculationprotected int
Quads used for hash calculationprotected int
Quads used for hash calculationprotected int[]
Temporary buffer used for name parsing.protected int
protected String[]
Array of recently seen field names, which may be back referenced by later fields.protected int
protected String[]
Array of recently seen field names, which may be back referenced by later fields Defaults set to disable handling if no header found.protected final com.fasterxml.jackson.core.StreamReadConstraints
protected com.fasterxml.jackson.core.json.JsonReadContext
Information about parser context, context in which the next token is to be parsed (root, array, object).protected final com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer
Symbol table that contains field names encountered so farprotected final boolean
Marker flag to indicate that standard symbol handling is used (one with symbol table assisted canonicalization.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 int
Alternative to_tokenInputTotal
that will only contain offset within input buffer, as int.protected static final int
protected static final int
protected static final int
protected static final String[]
protected static final com.fasterxml.jackson.core.util.JacksonFeatureSet
<com.fasterxml.jackson.core.StreamReadCapability> 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
SmileParserBase
(com.fasterxml.jackson.core.io.IOContext ctxt, int parserFeatures, int formatFeatures, com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer sym) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
protected void
Method called when an EOF is encountered between tokens.protected abstract void
protected final void
protected abstract void
protected void
_reportMismatchedEndMarker
(int actCh, char expCh) protected com.fasterxml.jackson.core.io.ContentReference
Helper method used to encapsulate logic of including (or not) of "source reference" when constructingJsonLocation
instances.final void
close()
protected final void
protected final void
protected final void
protected final void
protected final void
protected final void
final 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.final com.fasterxml.jackson.core.JsonLocation
Overridden since we do not really have character-based locations, but we do have byte offset to specify.final BigInteger
com.fasterxml.jackson.core.JsonLocation
Deprecated.Deprecated.final BigDecimal
final double
final float
final int
final int
final long
final com.fasterxml.jackson.core.JsonParser.NumberType
com.fasterxml.jackson.core.JsonParser.NumberTypeFP
final Number
final Number
final com.fasterxml.jackson.core.json.JsonReadContext
com.fasterxml.jackson.core.util.JacksonFeatureSet
<com.fasterxml.jackson.core.StreamReadCapability> com.fasterxml.jackson.core.JsonLocation
Deprecated.final boolean
isClosed()
final boolean
isNaN()
final boolean
final void
overrideCurrentName
(String name) final com.fasterxml.jackson.core.JsonParser
overrideFormatFeatures
(int values, int mask) com.fasterxml.jackson.core.StreamReadConstraints
final com.fasterxml.jackson.core.Version
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, getBinaryValue, getCurrentToken, getCurrentTokenId, getLastClearedToken, getText, getTextCharacters, getTextLength, getTextOffset, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, getValueAsString, getValueAsString, hasCurrentToken, hasTextCharacters, 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, canParseAsync, canReadObjectId, canReadTypeId, canUseSchema, configure, currentValue, disable, enable, finishToken, getBinaryValue, getBooleanValue, getByteValue, getCodec, getCurrentValue, getEmbeddedObject, getFeatureMask, getInputSource, getNonBlockingInputFeeder, getNumberValueDeferred, getObjectId, getSchema, getShortValue, getText, getTypeId, getValueAsBoolean, getValueAsDouble, isEnabled, isEnabled, nextBooleanValue, nextFieldName, nextFieldName, nextIntValue, nextLongValue, nextTextValue, overrideStdFeatures, readBinaryValue, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, releaseBuffered, requiresCustomCodec, setCodec, setCurrentValue, setFeatureMask, setRequestPayloadOnError, setRequestPayloadOnError, setRequestPayloadOnError, setSchema
-
Field Details
-
NO_STRINGS
-
LONGEST_NON_CHUNKED_BINARY
protected static final int LONGEST_NON_CHUNKED_BINARY- See Also:
-
DEFAULT_NAME_BUFFER_LENGTH
protected static final int DEFAULT_NAME_BUFFER_LENGTH- See Also:
-
DEFAULT_STRING_VALUE_BUFFER_LENGTH
protected static final int DEFAULT_STRING_VALUE_BUFFER_LENGTH- See Also:
-
SMILE_READ_CAPABILITIES
protected static final com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamReadCapability> SMILE_READ_CAPABILITIES -
_formatFeatures
protected int _formatFeaturesBit flag composed of bits that indicate whichSmileParser.Feature
s are enabled.NOTE: currently the only feature (
SmileParser.Feature.REQUIRE_HEADER
takes effect during bootstrapping. -
_mayContainRawBinary
protected boolean _mayContainRawBinaryFlag 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. -
_ioContext
protected final com.fasterxml.jackson.core.io.IOContext _ioContextI/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 _closedFlag 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 _inputPtrPointer to next available character in buffer -
_inputEnd
protected int _inputEndIndex of character after last available one in the buffer. -
_currInputProcessed
protected long _currInputProcessedNumber of characters/bytes that were contained in previous blocks (blocks that were already processed prior to the current buffer). -
_tokenOffsetForTotal
protected int _tokenOffsetForTotalAlternative to_tokenInputTotal
that will only contain offset within input buffer, as int. -
_streamReadContext
protected com.fasterxml.jackson.core.json.JsonReadContext _streamReadContextInformation 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 _textBufferBuffer 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[] _nameCopyBufferTemporary buffer that is needed if field name is accessed usingParserMinimalBase.getTextCharacters()
method (instead of String returning alternatives) -
_nameCopied
protected boolean _nameCopiedFlag 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) -
_binaryValue
protected byte[] _binaryValueWe will hold on to decoded binary data, for duration of current event, so that multiple calls toParserMinimalBase.getBinaryValue(com.fasterxml.jackson.core.Base64Variant)
will not need to decode data more than once. -
_numberType
protected com.fasterxml.jackson.core.JsonParser.NumberType _numberType -
_numTypesValid
protected int _numTypesValidBitfield that indicates which numeric representations have been calculated for the current type -
_numberBigInt
-
_numberBigDecimal
-
_numberInt
protected int _numberInt -
_numberFloat
protected float _numberFloat -
_numberLong
protected long _numberLong -
_numberDouble
protected double _numberDouble -
_symbols
protected final com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer _symbolsSymbol table that contains field names encountered so far -
_quadBuffer
protected int[] _quadBufferTemporary buffer used for name parsing. -
_quad1
protected int _quad1Quads used for hash calculation -
_quad2
protected int _quad2Quads used for hash calculation -
_quad3
protected int _quad3Quads used for hash calculation -
_symbolsCanonical
protected final boolean _symbolsCanonicalMarker 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
-
_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
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
-
-
Constructor Details
-
SmileParserBase
protected SmileParserBase(com.fasterxml.jackson.core.io.IOContext ctxt, int parserFeatures, int formatFeatures, com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer sym)
-
-
Method Details
-
streamReadConstraints
public com.fasterxml.jackson.core.StreamReadConstraints streamReadConstraints()- Overrides:
streamReadConstraints
in classcom.fasterxml.jackson.core.JsonParser
-
version
public final com.fasterxml.jackson.core.Version version()- Specified by:
version
in interfacecom.fasterxml.jackson.core.Versioned
- Specified by:
version
in classcom.fasterxml.jackson.core.JsonParser
-
mayContainRawBinary
public final boolean mayContainRawBinary() -
getFormatFeatures
public final int getFormatFeatures()- Overrides:
getFormatFeatures
in classcom.fasterxml.jackson.core.JsonParser
-
overrideFormatFeatures
public final com.fasterxml.jackson.core.JsonParser overrideFormatFeatures(int values, int mask) - Overrides:
overrideFormatFeatures
in classcom.fasterxml.jackson.core.JsonParser
-
getReadCapabilities
public com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamReadCapability> getReadCapabilities()- Overrides:
getReadCapabilities
in classcom.fasterxml.jackson.core.JsonParser
-
_closeInput
- Throws:
IOException
-
_parseNumericValue
- Throws:
IOException
-
currentLocation
public final 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 classcom.fasterxml.jackson.core.JsonParser
-
currentTokenLocation
public final 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 classcom.fasterxml.jackson.core.JsonParser
-
getCurrentLocation
Deprecated.- Specified by:
getCurrentLocation
in classcom.fasterxml.jackson.core.JsonParser
-
getTokenLocation
Deprecated.- Specified by:
getTokenLocation
in classcom.fasterxml.jackson.core.JsonParser
-
currentName
Method that can be called to get the name associated with the current event.- Overrides:
currentName
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getCurrentName
Deprecated.- Specified by:
getCurrentName
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
overrideCurrentName
- Specified by:
overrideCurrentName
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
_releaseBuffers
- Throws:
IOException
-
_releaseBuffers2
protected abstract void _releaseBuffers2() -
isClosed
public final boolean isClosed()- Specified by:
isClosed
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getParsingContext
public final com.fasterxml.jackson.core.json.JsonReadContext getParsingContext()- Specified by:
getParsingContext
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
isNaN
- Overrides:
isNaN
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getNumberValue
- Specified by:
getNumberValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getNumberValueExact
- Overrides:
getNumberValueExact
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getNumberType
- Specified by:
getNumberType
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getNumberTypeFP
- Overrides:
getNumberTypeFP
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getIntValue
- Specified by:
getIntValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getLongValue
- Specified by:
getLongValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getBigIntegerValue
- Specified by:
getBigIntegerValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getFloatValue
- Specified by:
getFloatValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getDoubleValue
- Specified by:
getDoubleValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getDecimalValue
- Specified by:
getDecimalValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
convertNumberToInt
- Throws:
IOException
-
convertNumberToLong
- Throws:
IOException
-
convertNumberToBigInteger
- Throws:
IOException
-
convertNumberToFloat
- Throws:
IOException
-
convertNumberToDouble
- Throws:
IOException
-
convertNumberToBigDecimal
- Throws:
IOException
-
_handleEOF
protected void _handleEOF() throws com.fasterxml.jackson.core.JsonParseExceptionMethod called when an EOF is encountered between tokens. If so, it may be a legitimate EOF, but only iff there is no open non-root context.- Specified by:
_handleEOF
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
com.fasterxml.jackson.core.JsonParseException
-
_reportMismatchedEndMarker
protected void _reportMismatchedEndMarker(int actCh, char expCh) throws com.fasterxml.jackson.core.JsonParseException - Throws:
com.fasterxml.jackson.core.JsonParseException
-
_sourceReference
protected com.fasterxml.jackson.core.io.ContentReference _sourceReference()Helper method used to encapsulate logic of including (or not) of "source reference" when constructingJsonLocation
instances.- Since:
- 2.13
-