|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.jackson.map.DeserializerProvider
public abstract class DeserializerProvider
Abstract class that defines API used by ObjectMapper
and
JsonDeserializer
s to obtain deserializers capable of
re-constructing instances of handled type from JSON content.
Constructor Summary | |
---|---|
protected |
DeserializerProvider()
|
Method Summary | |
---|---|
abstract int |
cachedDeserializersCount()
Method that can be used to determine how many deserializers this provider is caching currently (if it does caching: default implementation does) Exact count depends on what kind of deserializers get cached; default implementation caches only dynamically constructed deserializers, but not eagerly constructed standard deserializers (which is different from how serializer provider works). |
abstract KeyDeserializer |
findKeyDeserializer(DeserializationConfig config,
JavaType type)
Method called to get hold of a deserializer to use for deserializing keys for Map . |
abstract JsonDeserializer<Object> |
findTypedValueDeserializer(DeserializationConfig config,
JavaType type)
Method called to locate deserializer for given type, as well as matching type deserializer (if one is needed); and if type deserializer is needed, construct a "wrapped" deserializer that can extract and use type information for calling actual deserializer. |
abstract JsonDeserializer<Object> |
findValueDeserializer(DeserializationConfig config,
JavaType type,
JavaType referrer,
String refPropName)
Method called to get hold of a deserializer for a value of given type; or if no such deserializer can be found, a default handler (which may do a best-effort generic serialization or just simply throw an exception when invoked). |
abstract void |
flushCachedDeserializers()
Method that will drop all dynamically constructed deserializers (ones that are counted as result value for cachedDeserializersCount() ). |
abstract boolean |
hasValueDeserializerFor(DeserializationConfig config,
JavaType type)
Method called to find out whether provider would be able to find a deserializer for given type, using a root reference (i.e. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected DeserializerProvider()
Method Detail |
---|
public abstract JsonDeserializer<Object> findValueDeserializer(DeserializationConfig config, JavaType type, JavaType referrer, String refPropName) throws JsonMappingException
Note: this method is only called for value types; not for keys.
Key deserializers can be accessed using findKeyDeserializer(org.codehaus.jackson.map.DeserializationConfig, org.codehaus.jackson.type.JavaType)
.
type
- Declared type of the value to deserializer (obtained using
'setter' method signature and/or type annotationsreferrer
- Type that contains the value, if any: null for
root-level object.refPropName
- Logical name of the property within instance of
referrer
, if through a property (field). Null for
Collection and Array types, where reference is not through a
field, as well as for "any property" fallback references
JsonMappingException
- if there are fatal problems with
accessing suitable deserializer; including that of not
finding any serializerpublic abstract JsonDeserializer<Object> findTypedValueDeserializer(DeserializationConfig config, JavaType type) throws JsonMappingException
Since this method is only called for root elements, no referral information is taken.
JsonMappingException
public abstract KeyDeserializer findKeyDeserializer(DeserializationConfig config, JavaType type) throws JsonMappingException
Map
.
JsonMappingException
- if there are fatal problems with
accessing suitable key deserializer; including that of not
finding any serializerpublic abstract boolean hasValueDeserializerFor(DeserializationConfig config, JavaType type)
public abstract int cachedDeserializersCount()
The main use case for this method is to allow conditional flushing of deserializer cache, if certain number of entries is reached.
public abstract void flushCachedDeserializers()
cachedDeserializersCount()
).
This can be used to remove memory usage (in case some deserializers are
only used once or so), or to force re-construction of deserializers after
configuration changes for mapper than owns the provider.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |