Class DefaultDeserializationContext
- java.lang.Object
-
- com.fasterxml.jackson.databind.DatabindContext
-
- com.fasterxml.jackson.databind.DeserializationContext
-
- com.fasterxml.jackson.databind.deser.DefaultDeserializationContext
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
DefaultDeserializationContext.Impl
public abstract class DefaultDeserializationContext extends DeserializationContext implements java.io.Serializable
CompleteDeserializationContext
implementation that adds extended API forObjectMapper
(andObjectReader
) to call, as well as implements certain parts that base class has left abstract. The remaining abstract methods (createInstance(com.fasterxml.jackson.databind.DeserializationConfig, com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.InjectableValues)
,with(com.fasterxml.jackson.databind.deser.DeserializerFactory)
) are left so that custom implementations will properly implement them to return intended subtype.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DefaultDeserializationContext.Impl
Actual full concrete implementation
-
Field Summary
Fields Modifier and Type Field Description protected java.util.LinkedHashMap<com.fasterxml.jackson.annotation.ObjectIdGenerator.IdKey,ReadableObjectId>
_objectIds
-
Fields inherited from class com.fasterxml.jackson.databind.DeserializationContext
_arrayBuilders, _attributes, _cache, _config, _currentType, _dateFormat, _factory, _featureFlags, _injectableValues, _objectBuffer, _parser, _readCapabilities, _view
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
DefaultDeserializationContext(DefaultDeserializationContext src)
protected
DefaultDeserializationContext(DefaultDeserializationContext src, DeserializerFactory factory)
protected
DefaultDeserializationContext(DefaultDeserializationContext src, DeserializationConfig config)
protected
DefaultDeserializationContext(DefaultDeserializationContext src, DeserializationConfig config, com.fasterxml.jackson.core.JsonParser p, InjectableValues values)
protected
DefaultDeserializationContext(DeserializerFactory df, DeserializerCache cache)
Constructor that will pass specified deserializer factory and cache: cache may be null (in which case default implementation will be used), factory cannot be null
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected java.lang.Object
_unwrapAndDeserialize(com.fasterxml.jackson.core.JsonParser p, JavaType rootType, JsonDeserializer<java.lang.Object> deser, java.lang.Object valueToUpdate)
void
checkUnresolvedObjectId()
Method called to ensure that every object id encounter during processing are resolved.DefaultDeserializationContext
copy()
Method needed to ensure thatObjectMapper.copy()
will work properly; specifically, that caches are cleared, but settings will otherwise remain identical; and that no sharing of state occurs.abstract DefaultDeserializationContext
createDummyInstance(DeserializationConfig config)
abstract DefaultDeserializationContext
createInstance(DeserializationConfig config, com.fasterxml.jackson.core.JsonParser p, InjectableValues values)
Method called to create actual usable per-deserialization context instance.protected ReadableObjectId
createReadableObjectId(com.fasterxml.jackson.annotation.ObjectIdGenerator.IdKey key)
Overridable factory method to create a new instance of ReadableObjectId or its subclass.JsonDeserializer<java.lang.Object>
deserializerInstance(Annotated ann, java.lang.Object deserDef)
ReadableObjectId
findObjectId(java.lang.Object id, com.fasterxml.jackson.annotation.ObjectIdGenerator<?> gen, com.fasterxml.jackson.annotation.ObjectIdResolver resolverType)
Method called to find and return entry corresponding to given Object Id: will add an entry if necessary, and never returns nullKeyDeserializer
keyDeserializerInstance(Annotated ann, java.lang.Object deserDef)
java.lang.Object
readRootValue(com.fasterxml.jackson.core.JsonParser p, JavaType valueType, JsonDeserializer<java.lang.Object> deser, java.lang.Object valueToUpdate)
protected boolean
tryToResolveUnresolvedObjectId(ReadableObjectId roid)
Overridable helper method called to try to resolve otherwise unresolvableReadableObjectId
; and if this succeeds, returntrue
to indicate problem has been resolved in some way, so that caller can avoid reporting it as an error.abstract DefaultDeserializationContext
with(DeserializerFactory factory)
Fluent factory method used for constructing a blueprint instance with different factory-
Methods inherited from class com.fasterxml.jackson.databind.DeserializationContext
_getDateFormat, _isCompatible, _shapeForToken, canOverrideAccessModifiers, constructCalendar, constructSpecializedType, constructType, endOfInputException, extractScalarFromObject, findClass, findCoercionAction, findCoercionFromBlankString, findContextualValueDeserializer, findInjectableValue, findKeyDeserializer, findNonContextualValueDeserializer, findRootValueDeserializer, getActiveView, getAnnotationIntrospector, getArrayBuilders, getAttribute, getBase64Variant, getConfig, getContextualType, getDateFormat, getDefaultPropertyFormat, getDeserializationFeatures, getFactory, getLocale, getNodeFactory, getParser, getTimeZone, getTypeFactory, handleBadMerge, handleInstantiationProblem, handleMissingInstantiator, handleMissingTypeId, handlePrimaryContextualization, handleSecondaryContextualization, handleUnexpectedToken, handleUnexpectedToken, handleUnexpectedToken, handleUnexpectedToken, handleUnknownProperty, handleUnknownTypeId, handleWeirdKey, handleWeirdNativeValue, handleWeirdNumberValue, handleWeirdStringValue, hasDeserializationFeatures, hasSomeOfFeatures, hasValueDeserializerFor, instantiationException, instantiationException, invalidTypeIdException, isEnabled, isEnabled, isEnabled, leaseObjectBuffer, mappingException, mappingException, mappingException, mappingException, missingTypeIdException, parseDate, readPropertyValue, readPropertyValue, readTree, readValue, readValue, reportBadCoercion, reportBadDefinition, reportBadMerge, reportBadPropertyDefinition, reportBadTypeDefinition, reportInputMismatch, reportInputMismatch, reportInputMismatch, reportInputMismatch, reportMappingException, reportMissingContent, reportPropertyInputMismatch, reportPropertyInputMismatch, reportTrailingTokens, reportUnknownProperty, reportUnresolvedObjectId, reportWrongTokenException, reportWrongTokenException, reportWrongTokenException, reportWrongTokenException, returnObjectBuffer, setAttribute, unknownTypeException, weirdKeyException, weirdNativeValueException, weirdNumberException, weirdStringException, wrongTokenException, wrongTokenException, wrongTokenException
-
Methods inherited from class com.fasterxml.jackson.databind.DatabindContext
_colonConcat, _desc, _format, _quotedString, _throwNotASubtype, _throwSubtypeClassNotAllowed, _throwSubtypeNameNotAllowed, _truncate, constructType, converterInstance, objectIdGeneratorInstance, objectIdResolverInstance, reportBadDefinition, resolveAndValidateSubType, resolveSubType
-
-
-
-
Field Detail
-
_objectIds
protected transient java.util.LinkedHashMap<com.fasterxml.jackson.annotation.ObjectIdGenerator.IdKey,ReadableObjectId> _objectIds
-
-
Constructor Detail
-
DefaultDeserializationContext
protected DefaultDeserializationContext(DeserializerFactory df, DeserializerCache cache)
Constructor that will pass specified deserializer factory and cache: cache may be null (in which case default implementation will be used), factory cannot be null
-
DefaultDeserializationContext
protected DefaultDeserializationContext(DefaultDeserializationContext src, DeserializationConfig config, com.fasterxml.jackson.core.JsonParser p, InjectableValues values)
-
DefaultDeserializationContext
protected DefaultDeserializationContext(DefaultDeserializationContext src, DeserializationConfig config)
-
DefaultDeserializationContext
protected DefaultDeserializationContext(DefaultDeserializationContext src, DeserializerFactory factory)
-
DefaultDeserializationContext
protected DefaultDeserializationContext(DefaultDeserializationContext src)
- Since:
- 2.4.4
-
-
Method Detail
-
copy
public DefaultDeserializationContext copy()
Method needed to ensure thatObjectMapper.copy()
will work properly; specifically, that caches are cleared, but settings will otherwise remain identical; and that no sharing of state occurs.- Since:
- 2.4.4
-
findObjectId
public ReadableObjectId findObjectId(java.lang.Object id, com.fasterxml.jackson.annotation.ObjectIdGenerator<?> gen, com.fasterxml.jackson.annotation.ObjectIdResolver resolverType)
Description copied from class:DeserializationContext
Method called to find and return entry corresponding to given Object Id: will add an entry if necessary, and never returns null- Specified by:
findObjectId
in classDeserializationContext
-
createReadableObjectId
protected ReadableObjectId createReadableObjectId(com.fasterxml.jackson.annotation.ObjectIdGenerator.IdKey key)
Overridable factory method to create a new instance of ReadableObjectId or its subclass. It is meant to be overridden when custom ReadableObjectId is needed fortryToResolveUnresolvedObjectId(com.fasterxml.jackson.databind.deser.impl.ReadableObjectId)
. Default implementation simply constructs defaultReadableObjectId
with givenkey
.- Parameters:
key
- The key to associate with the new ReadableObjectId- Returns:
- New ReadableObjectId instance
- Since:
- 2.7
-
checkUnresolvedObjectId
public void checkUnresolvedObjectId() throws UnresolvedForwardReference
Description copied from class:DeserializationContext
Method called to ensure that every object id encounter during processing are resolved.- Specified by:
checkUnresolvedObjectId
in classDeserializationContext
- Throws:
UnresolvedForwardReference
-
tryToResolveUnresolvedObjectId
protected boolean tryToResolveUnresolvedObjectId(ReadableObjectId roid)
Overridable helper method called to try to resolve otherwise unresolvableReadableObjectId
; and if this succeeds, returntrue
to indicate problem has been resolved in some way, so that caller can avoid reporting it as an error.Default implementation simply calls
ReadableObjectId.tryToResolveUnresolved(com.fasterxml.jackson.databind.DeserializationContext)
and returns whatever it returns.- Since:
- 2.6
-
deserializerInstance
public JsonDeserializer<java.lang.Object> deserializerInstance(Annotated ann, java.lang.Object deserDef) throws JsonMappingException
- Specified by:
deserializerInstance
in classDeserializationContext
- Throws:
JsonMappingException
-
keyDeserializerInstance
public final KeyDeserializer keyDeserializerInstance(Annotated ann, java.lang.Object deserDef) throws JsonMappingException
- Specified by:
keyDeserializerInstance
in classDeserializationContext
- Throws:
JsonMappingException
-
with
public abstract DefaultDeserializationContext with(DeserializerFactory factory)
Fluent factory method used for constructing a blueprint instance with different factory
-
createInstance
public abstract DefaultDeserializationContext createInstance(DeserializationConfig config, com.fasterxml.jackson.core.JsonParser p, InjectableValues values)
Method called to create actual usable per-deserialization context instance.
-
createDummyInstance
public abstract DefaultDeserializationContext createDummyInstance(DeserializationConfig config)
-
readRootValue
public java.lang.Object readRootValue(com.fasterxml.jackson.core.JsonParser p, JavaType valueType, JsonDeserializer<java.lang.Object> deser, java.lang.Object valueToUpdate) throws java.io.IOException
- Throws:
java.io.IOException
-
_unwrapAndDeserialize
protected java.lang.Object _unwrapAndDeserialize(com.fasterxml.jackson.core.JsonParser p, JavaType rootType, JsonDeserializer<java.lang.Object> deser, java.lang.Object valueToUpdate) throws java.io.IOException
- Throws:
java.io.IOException
-
-