public abstract class DefaultDeserializationContext extends DeserializationContext implements Serializable
DeserializationContext
implementation that adds
extended API for ObjectMapper
(and ObjectReader
)
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.Modifier and Type | Class and Description |
---|---|
static class |
DefaultDeserializationContext.Impl
Actual full concrete implementation
|
Modifier and Type | Field and Description |
---|---|
protected LinkedHashMap<ObjectIdGenerator.IdKey,ReadableObjectId> |
_objectIds |
_arrayBuilders, _attributes, _cache, _config, _currentType, _dateFormat, _factory, _featureFlags, _injectableValues, _objectBuffer, _parser, _view
Modifier | Constructor and Description |
---|---|
protected |
DefaultDeserializationContext(DefaultDeserializationContext src) |
protected |
DefaultDeserializationContext(DefaultDeserializationContext src,
DeserializationConfig config,
JsonParser jp,
InjectableValues values) |
protected |
DefaultDeserializationContext(DefaultDeserializationContext src,
DeserializerFactory factory) |
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
|
Modifier and Type | Method and Description |
---|---|
void |
checkUnresolvedObjectId()
Method called to ensure that every object id encounter during processing
are resolved.
|
DefaultDeserializationContext |
copy()
Method needed to ensure that
ObjectMapper.copy() will work
properly; specifically, that caches are cleared, but settings
will otherwise remain identical; and that no sharing of state
occurs. |
abstract DefaultDeserializationContext |
createInstance(DeserializationConfig config,
JsonParser jp,
InjectableValues values)
Method called to create actual usable per-deserialization
context instance.
|
protected ReadableObjectId |
createReadableObjectId(ObjectIdGenerator.IdKey key)
Overridable factory method to create a new instance of ReadableObjectId or its
subclass.
|
JsonDeserializer<Object> |
deserializerInstance(Annotated ann,
Object deserDef) |
ReadableObjectId |
findObjectId(Object id,
ObjectIdGenerator<?> gen,
ObjectIdResolver resolverType)
Method called to find and return entry corresponding to given
Object Id: will add an entry if necessary, and never returns null
|
KeyDeserializer |
keyDeserializerInstance(Annotated ann,
Object deserDef) |
protected boolean |
tryToResolveUnresolvedObjectId(ReadableObjectId roid)
Overridable helper method called to try to resolve otherwise unresolvable
ReadableObjectId ;
and if this succeeds, return true 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
|
_isCompatible, canOverrideAccessModifiers, constructCalendar, constructType, endOfInputException, findClass, findContextualValueDeserializer, findInjectableValue, findKeyDeserializer, findNonContextualValueDeserializer, findRootValueDeserializer, getActiveView, getAnnotationIntrospector, getArrayBuilders, getAttribute, getBase64Variant, getConfig, getContextualType, getDateFormat, getDefaultPropertyFormat, getDeserializationFeatures, getFactory, getLocale, getNodeFactory, getParser, getTimeZone, getTypeFactory, handleInstantiationProblem, handleMissingInstantiator, handleMissingTypeId, handlePrimaryContextualization, handleSecondaryContextualization, handleUnexpectedToken, handleUnexpectedToken, handleUnknownProperty, handleUnknownTypeId, handleWeirdKey, handleWeirdNativeValue, handleWeirdNumberValue, handleWeirdStringValue, hasDeserializationFeatures, hasSomeOfFeatures, hasValueDeserializerFor, instantiationException, instantiationException, invalidTypeIdException, isEnabled, isEnabled, leaseObjectBuffer, mappingException, mappingException, mappingException, mappingException, missingTypeIdException, parseDate, readPropertyValue, readPropertyValue, readValue, readValue, reportBadDefinition, reportBadMerge, reportBadPropertyDefinition, reportBadTypeDefinition, reportInputMismatch, reportInputMismatch, reportInputMismatch, reportInputMismatch, reportMappingException, reportMissingContent, reportTrailingTokens, reportUnknownProperty, reportUnresolvedObjectId, reportWrongTokenException, reportWrongTokenException, reportWrongTokenException, reportWrongTokenException, returnObjectBuffer, setAttribute, unknownTypeException, weirdKeyException, weirdNativeValueException, weirdNumberException, weirdStringException, wrongTokenException, wrongTokenException, wrongTokenException
_colonConcat, _desc, _format, _quotedString, _truncate, constructSpecializedType, constructType, converterInstance, objectIdGeneratorInstance, objectIdResolverInstance, reportBadDefinition, resolveSubType
protected transient LinkedHashMap<ObjectIdGenerator.IdKey,ReadableObjectId> _objectIds
protected DefaultDeserializationContext(DeserializerFactory df, DeserializerCache cache)
protected DefaultDeserializationContext(DefaultDeserializationContext src, DeserializationConfig config, JsonParser jp, InjectableValues values)
protected DefaultDeserializationContext(DefaultDeserializationContext src, DeserializerFactory factory)
protected DefaultDeserializationContext(DefaultDeserializationContext src)
public DefaultDeserializationContext copy()
ObjectMapper.copy()
will work
properly; specifically, that caches are cleared, but settings
will otherwise remain identical; and that no sharing of state
occurs.public ReadableObjectId findObjectId(Object id, ObjectIdGenerator<?> gen, ObjectIdResolver resolverType)
DeserializationContext
findObjectId
in class DeserializationContext
protected ReadableObjectId createReadableObjectId(ObjectIdGenerator.IdKey key)
tryToResolveUnresolvedObjectId(com.fasterxml.jackson.databind.deser.impl.ReadableObjectId)
.
Default implementation simply constructs default ReadableObjectId
with
given key
.key
- The key to associate with the new ReadableObjectIdpublic void checkUnresolvedObjectId() throws UnresolvedForwardReference
DeserializationContext
checkUnresolvedObjectId
in class DeserializationContext
UnresolvedForwardReference
protected boolean tryToResolveUnresolvedObjectId(ReadableObjectId roid)
ReadableObjectId
;
and if this succeeds, return true
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.
public JsonDeserializer<Object> deserializerInstance(Annotated ann, Object deserDef) throws JsonMappingException
deserializerInstance
in class DeserializationContext
JsonMappingException
public final KeyDeserializer keyDeserializerInstance(Annotated ann, Object deserDef) throws JsonMappingException
keyDeserializerInstance
in class DeserializationContext
JsonMappingException
public abstract DefaultDeserializationContext with(DeserializerFactory factory)
public abstract DefaultDeserializationContext createInstance(DeserializationConfig config, JsonParser jp, InjectableValues values)
Copyright © 2008–2019 FasterXML. All rights reserved.