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
CompleteDeserializationContextimplementation 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 classDefaultDeserializationContext.ImplActual 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 protectedDefaultDeserializationContext(DefaultDeserializationContext src)Copy-constructorprotectedDefaultDeserializationContext(DefaultDeserializationContext src, CacheProvider cp)protectedDefaultDeserializationContext(DefaultDeserializationContext src, DeserializerFactory factory)protectedDefaultDeserializationContext(DefaultDeserializationContext src, DeserializationConfig config)protectedDefaultDeserializationContext(DefaultDeserializationContext src, DeserializationConfig config, com.fasterxml.jackson.core.JsonParser p, InjectableValues values)protectedDefaultDeserializationContext(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)voidcheckUnresolvedObjectId()Method called to ensure that every object id encounter during processing are resolved.DefaultDeserializationContextcopy()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 DefaultDeserializationContextcreateDummyInstance(DeserializationConfig config)abstract DefaultDeserializationContextcreateInstance(DeserializationConfig config, com.fasterxml.jackson.core.JsonParser p, InjectableValues values)Method called to create actual usable per-deserialization context instance.protected ReadableObjectIdcreateReadableObjectId(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)ReadableObjectIdfindObjectId(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 nullKeyDeserializerkeyDeserializerInstance(Annotated ann, java.lang.Object deserDef)java.lang.ObjectreadRootValue(com.fasterxml.jackson.core.JsonParser p, JavaType valueType, JsonDeserializer<java.lang.Object> deser, java.lang.Object valueToUpdate)protected booleantryToResolveUnresolvedObjectId(ReadableObjectId roid)Overridable helper method called to try to resolve otherwise unresolvableReadableObjectId; and if this succeeds, returntrueto indicate problem has been resolved in some way, so that caller can avoid reporting it as an error.abstract DefaultDeserializationContextwith(DeserializerFactory factory)Fluent factory method used for constructing a blueprint instance with different factoryabstract DefaultDeserializationContextwithCaches(CacheProvider cacheProvider)Fluent factory method used for constructing a new instance with cache instances provided byCacheProvider.-
Methods inherited from class com.fasterxml.jackson.databind.DeserializationContext
_getDateFormat, _isCompatible, _shapeForToken, bufferAsCopyOfValue, bufferForInputBuffering, bufferForInputBuffering, canOverrideAccessModifiers, constructCalendar, constructSpecializedType, constructType, extractScalarFromObject, findClass, findCoercionAction, findCoercionFromBlankString, findContextualValueDeserializer, findInjectableValue, findKeyDeserializer, findNonContextualValueDeserializer, findRootValueDeserializer, getActiveView, getAnnotationIntrospector, getArrayBuilders, getAttribute, getBase64Variant, getConfig, getContextualType, getDatatypeFeatures, 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, isEnabled, leaseObjectBuffer, missingTypeIdException, parseDate, readPropertyValue, readPropertyValue, readTree, readTreeAsValue, readTreeAsValue, readValue, readValue, reportBadCoercion, reportBadDefinition, reportBadPropertyDefinition, reportBadTypeDefinition, reportInputMismatch, reportInputMismatch, reportInputMismatch, reportInputMismatch, reportPropertyInputMismatch, reportPropertyInputMismatch, reportTrailingTokens, reportUnresolvedObjectId, reportWrongTokenException, reportWrongTokenException, reportWrongTokenException, returnObjectBuffer, setAttribute, weirdKeyException, weirdNativeValueException, weirdNumberException, weirdStringException, 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)
Copy-constructor- Since:
- 2.4.4
-
DefaultDeserializationContext
protected DefaultDeserializationContext(DefaultDeserializationContext src, CacheProvider cp)
- Since:
- 2.16
-
-
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:DeserializationContextMethod called to find and return entry corresponding to given Object Id: will add an entry if necessary, and never returns null- Specified by:
findObjectIdin 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 defaultReadableObjectIdwith givenkey.- Parameters:
key- The key to associate with the new ReadableObjectId- Returns:
- New ReadableObjectId instance
- Since:
- 2.7
-
checkUnresolvedObjectId
public void checkUnresolvedObjectId() throws UnresolvedForwardReferenceDescription copied from class:DeserializationContextMethod called to ensure that every object id encounter during processing are resolved.- Specified by:
checkUnresolvedObjectIdin classDeserializationContext- Throws:
UnresolvedForwardReference
-
tryToResolveUnresolvedObjectId
protected boolean tryToResolveUnresolvedObjectId(ReadableObjectId roid)
Overridable helper method called to try to resolve otherwise unresolvableReadableObjectId; and if this succeeds, returntrueto 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:
deserializerInstancein classDeserializationContext- Throws:
JsonMappingException
-
keyDeserializerInstance
public final KeyDeserializer keyDeserializerInstance(Annotated ann, java.lang.Object deserDef) throws JsonMappingException
- Specified by:
keyDeserializerInstancein classDeserializationContext- Throws:
JsonMappingException
-
with
public abstract DefaultDeserializationContext with(DeserializerFactory factory)
Fluent factory method used for constructing a blueprint instance with different factory
-
withCaches
public abstract DefaultDeserializationContext withCaches(CacheProvider cacheProvider)
Fluent factory method used for constructing a new instance with cache instances provided byCacheProvider.- Since:
- 2.16
-
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
-
-