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.ParserMinimalBase
Parses a BSONObject by traversing it. This class was copied fromTreeTraversingParser
and 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 boolean
closed
Flag that indicates whether parser is closed or not.protected com.fasterxml.jackson.core.JsonToken
nextToken
Sometimes parser needs to buffer a single look-ahead token; if so, it'll be stored here.protected org.mongojack.internal.object.document.DocumentObjectCursor
nodeCursor
Traversal context within treeprotected com.fasterxml.jackson.core.ObjectCodec
objectCodec
protected boolean
startContainer
Flag 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()
void
close()
protected Object
currentNode()
BigInteger
getBigIntegerValue()
byte[]
getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant)
com.fasterxml.jackson.core.ObjectCodec
getCodec()
com.fasterxml.jackson.core.JsonLocation
getCurrentLocation()
String
getCurrentName()
BigDecimal
getDecimalValue()
double
getDoubleValue()
Object
getEmbeddedObject()
float
getFloatValue()
int
getIntValue()
long
getLongValue()
com.fasterxml.jackson.core.JsonParser.NumberType
getNumberType()
Number
getNumberValue()
com.fasterxml.jackson.core.JsonStreamContext
getParsingContext()
String
getText()
char[]
getTextCharacters()
int
getTextLength()
int
getTextOffset()
com.fasterxml.jackson.core.JsonLocation
getTokenLocation()
boolean
hasTextCharacters()
boolean
isClosed()
com.fasterxml.jackson.core.JsonToken
nextToken()
void
overrideCurrentName(String name)
void
setCodec(com.fasterxml.jackson.core.ObjectCodec c)
com.fasterxml.jackson.core.JsonParser
skipChildren()
com.fasterxml.jackson.core.Version
version()
-
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:
version
in interfacecom.fasterxml.jackson.core.Versioned
- Specified by:
version
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
-
getCodec
public com.fasterxml.jackson.core.ObjectCodec getCodec()
- Specified by:
getCodec
in classcom.fasterxml.jackson.core.JsonParser
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
nextToken
public com.fasterxml.jackson.core.JsonToken nextToken() throws IOException
- Specified by:
nextToken
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
skipChildren
public com.fasterxml.jackson.core.JsonParser skipChildren() throws IOException
- Overrides:
skipChildren
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
isClosed
public boolean isClosed()
- Specified by:
isClosed
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getCurrentName
public String getCurrentName()
- Specified by:
getCurrentName
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getParsingContext
public com.fasterxml.jackson.core.JsonStreamContext getParsingContext()
- Specified by:
getParsingContext
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getTokenLocation
public com.fasterxml.jackson.core.JsonLocation getTokenLocation()
- Specified by:
getTokenLocation
in classcom.fasterxml.jackson.core.JsonParser
-
getCurrentLocation
public com.fasterxml.jackson.core.JsonLocation getCurrentLocation()
- Specified by:
getCurrentLocation
in classcom.fasterxml.jackson.core.JsonParser
-
getText
public String getText()
- Specified by:
getText
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getTextCharacters
public char[] getTextCharacters() throws IOException
- Specified by:
getTextCharacters
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
getTextLength
public int getTextLength() throws IOException
- Specified by:
getTextLength
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
getTextOffset
public int getTextOffset() throws IOException
- Specified by:
getTextOffset
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
IOException
-
hasTextCharacters
public boolean hasTextCharacters()
- Specified by:
hasTextCharacters
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
getNumberType
public com.fasterxml.jackson.core.JsonParser.NumberType getNumberType() throws IOException
- Specified by:
getNumberType
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getBigIntegerValue
public BigInteger getBigIntegerValue() throws IOException
- Specified by:
getBigIntegerValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getDecimalValue
public BigDecimal getDecimalValue() throws IOException
- Specified by:
getDecimalValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getDoubleValue
public double getDoubleValue() throws IOException
- Specified by:
getDoubleValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getFloatValue
public float getFloatValue() throws IOException
- Specified by:
getFloatValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getLongValue
public long getLongValue() throws IOException
- Specified by:
getLongValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getIntValue
public int getIntValue() throws IOException
- Specified by:
getIntValue
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
getNumberValue
public Number getNumberValue() throws IOException
- Specified by:
getNumberValue
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
public Object getEmbeddedObject() throws IOException
- Overrides:
getEmbeddedObject
in classcom.fasterxml.jackson.core.JsonParser
- Throws:
IOException
-
_handleEOF
protected void _handleEOF() throws com.fasterxml.jackson.core.JsonParseException
- Specified by:
_handleEOF
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
- Throws:
com.fasterxml.jackson.core.JsonParseException
-
overrideCurrentName
public void overrideCurrentName(String name)
- Specified by:
overrideCurrentName
in classcom.fasterxml.jackson.core.base.ParserMinimalBase
-
currentNode
protected Object currentNode()
-
-