|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.codehaus.jackson.map.JsonDeserializer<java.lang.Object>
org.codehaus.jackson.map.deser.BeanDeserializer
public class BeanDeserializer
Deserializer class that can deserialize instances of arbitrary bean objects, usually from Json Object structs, but possibly also from simple types like String values.
| Field Summary | |
|---|---|
protected SettableAnyProperty |
_anySetter
Fallback setter used for handling any properties that are not mapped to regular setters. |
protected JavaType |
_beanType
|
protected java.lang.reflect.Constructor<?> |
_defaultConstructor
Default constructor used to instantiate the bean when mapping from Json object. |
protected java.util.HashSet<java.lang.String> |
_ignorableProps
In addition to properties that are set, we will also keep track of recognized but ignorable properties: these will be skipped without errors or warnings. |
protected org.codehaus.jackson.map.deser.BeanDeserializer.NumberConstructor |
_numberConstructor
If the "bean" class can be instantiated using just a single numeric (int, long) value (via constructor, static method etc), this object knows how to invoke method/constructor in question. |
protected java.util.HashMap<java.lang.String,SettableBeanProperty> |
_props
Things set via setters (modifiers) are included in this Map. |
protected org.codehaus.jackson.map.deser.BeanDeserializer.StringConstructor |
_stringConstructor
If the "bean" class can be instantiated using just a single String (via constructor, static method etc), this object knows how to invoke method/constructor in question. |
| Constructor Summary | |
|---|---|
BeanDeserializer(JavaType type)
|
|
| Method Summary | |
|---|---|
protected static void |
_rethrow(java.lang.Exception e)
|
void |
addIgnorable(java.lang.String propName)
Method that will add property name as one of properties that can be ignored if not recognized. |
void |
addProperty(SettableBeanProperty prop)
Method to add a property setter. |
java.lang.Object |
deserialize(JsonParser jp,
DeserializationContext ctxt)
Method that can be called to ask implementation to deserialize json content into the value type this serializer handles. |
java.lang.Object |
deserializeFromObject(JsonParser jp,
DeserializationContext ctxt)
|
java.lang.Class<?> |
getBeanClass()
|
protected void |
handleUnknownProperty(DeserializationContext ctxt,
java.lang.Object resultBean,
java.lang.String propName)
Method called to deal with a property that did not map to a known Bean property. |
SettableBeanProperty |
removeProperty(java.lang.String name)
|
protected void |
reportUnknownField(DeserializationContext ctxt,
java.lang.Object resultBean,
java.lang.String fieldName)
|
void |
resolve(DeserializationConfig config,
DeserializerProvider provider)
Method called to finalize setup of this deserializer, after deserializer itself has been registered. |
void |
setAnySetter(SettableAnyProperty s)
|
void |
setConstructor(org.codehaus.jackson.map.deser.BeanDeserializer.NumberConstructor ctor)
|
void |
setConstructor(org.codehaus.jackson.map.deser.BeanDeserializer.StringConstructor ctor)
|
void |
setDefaultConstructor(java.lang.reflect.Constructor<?> ctor)
|
boolean |
shouldBeCached()
Because of costs associated with constructing bean deserializers, they usually should be cached unlike other deserializer types. |
void |
validateConstructors()
Method called to ensure that there is at least one constructor that could be used to construct an instance. |
| Methods inherited from class org.codehaus.jackson.map.JsonDeserializer |
|---|
deserialize, getNullValue |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected final JavaType _beanType
protected java.lang.reflect.Constructor<?> _defaultConstructor
protected org.codehaus.jackson.map.deser.BeanDeserializer.StringConstructor _stringConstructor
protected org.codehaus.jackson.map.deser.BeanDeserializer.NumberConstructor _numberConstructor
protected final java.util.HashMap<java.lang.String,SettableBeanProperty> _props
protected SettableAnyProperty _anySetter
protected java.util.HashSet<java.lang.String> _ignorableProps
| Constructor Detail |
|---|
public BeanDeserializer(JavaType type)
| Method Detail |
|---|
public void setDefaultConstructor(java.lang.reflect.Constructor<?> ctor)
public void setConstructor(org.codehaus.jackson.map.deser.BeanDeserializer.StringConstructor ctor)
public void setConstructor(org.codehaus.jackson.map.deser.BeanDeserializer.NumberConstructor ctor)
public void addProperty(SettableBeanProperty prop)
IllegalArgumentException.
public SettableBeanProperty removeProperty(java.lang.String name)
public void setAnySetter(SettableAnyProperty s)
public void addIgnorable(java.lang.String propName)
public void validateConstructors()
public void resolve(DeserializationConfig config,
DeserializerProvider provider)
throws JsonMappingException
resolve in interface ResolvableDeserializerprovider - Provider that has constructed deserializer this method
is called on.
JsonMappingExceptionpublic boolean shouldBeCached()
shouldBeCached in class JsonDeserializer<java.lang.Object>
public final java.lang.Object deserialize(JsonParser jp,
DeserializationContext ctxt)
throws java.io.IOException,
JsonProcessingException
JsonDeserializerPre-condition for this method is that the parser points to the first event that is part of value to deserializer (and which is never Json 'null' literal, more on this below): for simple types it may be the only value; and for structured types the Object start marker. Post-condition is that the parser will point to the last event that is part of deserialized value (or in case deserialization fails, event that was not recognized or usable, which may be the same event as the one it pointed to upon call).
Note that this method is never called for JSON null literal, and thus deserializers need (and should) not check for it.
deserialize in class JsonDeserializer<java.lang.Object>jp - Parsed used for reading Json contentctxt - Context that can be used to access information about
this deserialization activity.
java.io.IOException
JsonProcessingExceptionpublic final java.lang.Class<?> getBeanClass()
public java.lang.Object deserializeFromObject(JsonParser jp,
DeserializationContext ctxt)
throws java.io.IOException,
JsonProcessingException
java.io.IOException
JsonProcessingException
protected void handleUnknownProperty(DeserializationContext ctxt,
java.lang.Object resultBean,
java.lang.String propName)
throws java.io.IOException,
JsonProcessingException
ctxt - Context for deserialization; allows access to the parser,
error reporting functionalityresultBean - Bean that is being populated by this deserializerpropName - Name of the property that can not be mapped
java.io.IOException
JsonProcessingException
protected void reportUnknownField(DeserializationContext ctxt,
java.lang.Object resultBean,
java.lang.String fieldName)
throws java.io.IOException,
JsonProcessingException
java.io.IOException
JsonProcessingException
protected static void _rethrow(java.lang.Exception e)
throws java.lang.RuntimeException
java.lang.RuntimeException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||