Class DocumentObjectTraversingParser
- java.lang.Object
-
- com.fasterxml.jackson.core.JsonParser
-
- com.fasterxml.jackson.core.base.ParserMinimalBase
-
- org.mongojack.internal.object.document.DocumentObjectTraversingParser
-
- All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned,Closeable,AutoCloseable
public class DocumentObjectTraversingParser extends com.fasterxml.jackson.core.base.ParserMinimalBaseParses a BSONObject by traversing it. This class was copied fromTreeTraversingParserand then adapted to be for BSONObject's, rather than JsonNode's. While decoding by the cursor uses DBDecoderBsonParser, there are still things that need to be decoded from the DBObjects, including the result of findAndModify, and saved objects after saving.- Since:
- 1.0
- Author:
- James Roper
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanclosedFlag that indicates whether parser is closed or not.protected com.fasterxml.jackson.core.JsonTokennextTokenSometimes parser needs to buffer a single look-ahead token; if so, it'll be stored here.protected org.mongojack.internal.object.document.DocumentObjectCursornodeCursorTraversal context within treeprotected com.fasterxml.jackson.core.ObjectCodecobjectCodecprotected booleanstartContainerFlag needed to handle recursion into contents of child Array/Object nodes.-
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
-
-
Constructor Summary
Constructors Constructor Description DocumentObjectTraversingParser(Object rootValue, com.fasterxml.jackson.core.ObjectCodec codec)DocumentObjectTraversingParser(org.bson.Document o, com.fasterxml.jackson.core.ObjectCodec codec)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void_handleEOF()voidclose()protected ObjectcurrentNode()BigIntegergetBigIntegerValue()byte[]getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant)com.fasterxml.jackson.core.ObjectCodecgetCodec()com.fasterxml.jackson.core.JsonLocationgetCurrentLocation()StringgetCurrentName()BigDecimalgetDecimalValue()doublegetDoubleValue()ObjectgetEmbeddedObject()floatgetFloatValue()intgetIntValue()longgetLongValue()com.fasterxml.jackson.core.JsonParser.NumberTypegetNumberType()NumbergetNumberValue()com.fasterxml.jackson.core.JsonStreamContextgetParsingContext()StringgetText()char[]getTextCharacters()intgetTextLength()intgetTextOffset()com.fasterxml.jackson.core.JsonLocationgetTokenLocation()booleanhasTextCharacters()booleanisClosed()com.fasterxml.jackson.core.JsonTokennextToken()voidoverrideCurrentName(String name)voidsetCodec(com.fasterxml.jackson.core.ObjectCodec c)com.fasterxml.jackson.core.JsonParserskipChildren()com.fasterxml.jackson.core.Versionversion()-
Methods inherited from class com.fasterxml.jackson.core.base.ParserMinimalBase
_ascii, _asciiBytes, _constructError, _decodeBase64, _getCharDesc, _hasTextualNull, _longIntegerDesc, _longNumberDesc, _reportError, _reportError, _reportError, _reportInputCoercion, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOFInValue, _reportInvalidEOFInValue, _reportMissingRootWS, _reportUnexpectedChar, _reportUnexpectedNumberChar, _throwInternal, _throwInvalidSpace, _wrapError, clearCurrentToken, currentToken, currentTokenId, getCurrentToken, getCurrentTokenId, getLastClearedToken, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, getValueAsString, getValueAsString, hasCurrentToken, hasToken, hasTokenId, isExpectedNumberIntToken, isExpectedStartArrayToken, isExpectedStartObjectToken, nextValue, reportInvalidNumber, reportOverflowInt, reportOverflowInt, reportOverflowInt, reportOverflowLong, reportOverflowLong, reportOverflowLong, reportUnexpectedNumberChar
-
Methods inherited from class com.fasterxml.jackson.core.JsonParser
_codec, _constructError, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _reportUnsupportedOperation, assignCurrentValue, canParseAsync, canReadObjectId, canReadTypeId, canUseSchema, configure, currentLocation, currentName, currentTokenLocation, currentValue, disable, enable, finishToken, getBinaryValue, getBooleanValue, getByteValue, getCurrentValue, getFeatureMask, getFormatFeatures, getInputSource, getNonBlockingInputFeeder, getNumberValueDeferred, getNumberValueExact, getObjectId, getReadCapabilities, getSchema, getShortValue, getText, getTypeId, getValueAsBoolean, getValueAsDouble, isEnabled, isEnabled, isNaN, nextBooleanValue, nextFieldName, nextFieldName, nextIntValue, nextLongValue, nextTextValue, overrideFormatFeatures, overrideStdFeatures, readBinaryValue, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, releaseBuffered, requiresCustomCodec, setCurrentValue, setFeatureMask, setRequestPayloadOnError, setRequestPayloadOnError, setRequestPayloadOnError, setSchema, streamReadConstraints
-
-
-
-
Field Detail
-
objectCodec
protected com.fasterxml.jackson.core.ObjectCodec objectCodec
-
nodeCursor
protected org.mongojack.internal.object.document.DocumentObjectCursor nodeCursor
Traversal context within tree
-
nextToken
protected com.fasterxml.jackson.core.JsonToken nextToken
Sometimes parser needs to buffer a single look-ahead token; if so, it'll be stored here. This is currently used for handling
-
startContainer
protected boolean startContainer
Flag needed to handle recursion into contents of child Array/Object nodes.
-
closed
protected boolean closed
Flag that indicates whether parser is closed or not. Gets set when parser is either closed by explicit call (close()) or when end-of-input is reached.
-
-
Constructor Detail
-
DocumentObjectTraversingParser
public DocumentObjectTraversingParser(Object rootValue, com.fasterxml.jackson.core.ObjectCodec codec)
-
DocumentObjectTraversingParser
public DocumentObjectTraversingParser(org.bson.Document o, com.fasterxml.jackson.core.ObjectCodec codec)
-
-
Method Detail
-
version
public com.fasterxml.jackson.core.Version version()
- Specified by:
versionin interfacecom.fasterxml.jackson.core.Versioned- Specified by:
versionin classcom.fasterxml.jackson.core.JsonParser
-
setCodec
public void setCodec(com.fasterxml.jackson.core.ObjectCodec c)
- Specified by:
setCodecin classcom.fasterxml.jackson.core.JsonParser
-
getCodec
public com.fasterxml.jackson.core.ObjectCodec getCodec()
- Specified by:
getCodecin classcom.fasterxml.jackson.core.JsonParser
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classcom.fasterxml.jackson.core.base.ParserMinimalBase- Throws:
IOException
-
nextToken
public com.fasterxml.jackson.core.JsonToken nextToken() throws IOException- Specified by:
nextTokenin classcom.fasterxml.jackson.core.base.ParserMinimalBase- Throws:
IOException
-
skipChildren
public com.fasterxml.jackson.core.JsonParser skipChildren() throws IOException- Overrides:
skipChildrenin classcom.fasterxml.jackson.core.base.ParserMinimalBase- Throws:
IOException
-
isClosed
public boolean isClosed()
- Specified by:
isClosedin classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getCurrentName
public String getCurrentName()
- Specified by:
getCurrentNamein classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getParsingContext
public com.fasterxml.jackson.core.JsonStreamContext getParsingContext()
- Specified by:
getParsingContextin classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getTokenLocation
public com.fasterxml.jackson.core.JsonLocation getTokenLocation()
- Specified by:
getTokenLocationin classcom.fasterxml.jackson.core.JsonParser
-
getCurrentLocation
public com.fasterxml.jackson.core.JsonLocation getCurrentLocation()
- Specified by:
getCurrentLocationin classcom.fasterxml.jackson.core.JsonParser
-
getText
public String getText()
- Specified by:
getTextin classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getTextCharacters
public char[] getTextCharacters() throws IOException- Specified by:
getTextCharactersin classcom.fasterxml.jackson.core.base.ParserMinimalBase- Throws:
IOException
-
getTextLength
public int getTextLength() throws IOException- Specified by:
getTextLengthin classcom.fasterxml.jackson.core.base.ParserMinimalBase- Throws:
IOException
-
getTextOffset
public int getTextOffset() throws IOException- Specified by:
getTextOffsetin classcom.fasterxml.jackson.core.base.ParserMinimalBase- Throws:
IOException
-
hasTextCharacters
public boolean hasTextCharacters()
- Specified by:
hasTextCharactersin classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getNumberType
public com.fasterxml.jackson.core.JsonParser.NumberType getNumberType() throws IOException- Specified by:
getNumberTypein classcom.fasterxml.jackson.core.JsonParser- Throws:
IOException
-
getBigIntegerValue
public BigInteger getBigIntegerValue() throws IOException
- Specified by:
getBigIntegerValuein classcom.fasterxml.jackson.core.JsonParser- Throws:
IOException
-
getDecimalValue
public BigDecimal getDecimalValue() throws IOException
- Specified by:
getDecimalValuein classcom.fasterxml.jackson.core.JsonParser- Throws:
IOException
-
getDoubleValue
public double getDoubleValue() throws IOException- Specified by:
getDoubleValuein classcom.fasterxml.jackson.core.JsonParser- Throws:
IOException
-
getFloatValue
public float getFloatValue() throws IOException- Specified by:
getFloatValuein classcom.fasterxml.jackson.core.JsonParser- Throws:
IOException
-
getLongValue
public long getLongValue() throws IOException- Specified by:
getLongValuein classcom.fasterxml.jackson.core.JsonParser- Throws:
IOException
-
getIntValue
public int getIntValue() throws IOException- Specified by:
getIntValuein classcom.fasterxml.jackson.core.JsonParser- Throws:
IOException
-
getNumberValue
public Number getNumberValue() throws IOException
- Specified by:
getNumberValuein classcom.fasterxml.jackson.core.JsonParser- Throws:
IOException
-
getBinaryValue
public byte[] getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant) throws IOException- Specified by:
getBinaryValuein classcom.fasterxml.jackson.core.base.ParserMinimalBase- Throws:
IOException
-
getEmbeddedObject
public Object getEmbeddedObject() throws IOException
- Overrides:
getEmbeddedObjectin classcom.fasterxml.jackson.core.JsonParser- Throws:
IOException
-
_handleEOF
protected void _handleEOF() throws com.fasterxml.jackson.core.JsonParseException- Specified by:
_handleEOFin classcom.fasterxml.jackson.core.base.ParserMinimalBase- Throws:
com.fasterxml.jackson.core.JsonParseException
-
overrideCurrentName
public void overrideCurrentName(String name)
- Specified by:
overrideCurrentNamein classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
currentNode
protected Object currentNode()
-
-