|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.jackson.map.JsonDeserializer<T>
org.codehaus.jackson.map.deser.StdDeserializer<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.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.codehaus.jackson.map.JsonDeserializer |
---|
JsonDeserializer.None |
Field Summary | |
---|---|
protected SettableAnyProperty |
_anySetter
Fallback setter used for handling any properties that are not mapped to regular setters. |
protected JavaType |
_beanType
|
protected Constructor<?> |
_defaultConstructor
Default constructor used to instantiate the bean when mapping from Json object, and only using setters for initialization (not specific constructors) |
protected org.codehaus.jackson.map.deser.Creator.Delegating |
_delegatingCreator
If the bean class can be instantiated using a creator (an annotated single arg constructor or static method), this object is used for handling details of how delegate-based deserialization and instance construction works |
protected HashSet<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 boolean |
_ignoreAllUnknown
Flag that can be set to ignore and skip unknown properties. |
protected org.codehaus.jackson.map.deser.Creator.NumberBased |
_numberCreator
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 org.codehaus.jackson.map.deser.Creator.PropertyBased |
_propertyBasedCreator
If the bean needs to be instantiated using constructor or factory method that takes one or more named properties as argument(s), this creator is used for instantiation. |
protected HashMap<String,SettableBeanProperty> |
_props
Things set via setters (modifiers) are included in this Map. |
protected org.codehaus.jackson.map.deser.Creator.StringBased |
_stringCreator
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 Object |
_deserializeProperties(JsonParser jp,
DeserializationContext ctxt,
Object bean)
Method that will process "extra" properties that follow Creator-bound properties (if any). |
protected Object |
_deserializeUsingPropertyBased(JsonParser jp,
DeserializationContext ctxt)
Method called to deserialize bean using "property-based creator": this means that a non-default constructor or factory method is called, and then possibly other setters. |
void |
addIgnorable(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. |
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. |
Object |
deserializeFromNumber(JsonParser jp,
DeserializationContext ctxt)
|
Object |
deserializeFromObject(JsonParser jp,
DeserializationContext ctxt)
|
Object |
deserializeFromString(JsonParser jp,
DeserializationContext ctxt)
|
Object |
deserializeUsingCreator(JsonParser jp,
DeserializationContext ctxt)
|
Class<?> |
getBeanClass()
|
JavaType |
getValueType()
|
protected void |
handleUnknownProperty(DeserializationContext ctxt,
Object beanOrClass,
String propName)
Method called when a JSON property is encountered that has not matching setter, any-setter or field, and thus can not be assigned. |
SettableBeanProperty |
removeProperty(String name)
|
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 |
setCreators(CreatorContainer creators)
Method called by factory after it has introspected all available Creators (constructors, static factory methods). |
void |
setDefaultConstructor(Constructor<?> ctor)
|
void |
setIgnoreUnknownProperties(boolean ignore)
|
void |
validateCreators()
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.deser.StdDeserializer |
---|
_parseBoolean, _parseDate, _parseDouble, _parseFloat, _parseInt, _parseLong, _parseShort, findDeserializer, getValueClass, reportUnknownProperty |
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 Constructor<?> _defaultConstructor
protected org.codehaus.jackson.map.deser.Creator.StringBased _stringCreator
protected org.codehaus.jackson.map.deser.Creator.NumberBased _numberCreator
protected org.codehaus.jackson.map.deser.Creator.Delegating _delegatingCreator
protected org.codehaus.jackson.map.deser.Creator.PropertyBased _propertyBasedCreator
protected final HashMap<String,SettableBeanProperty> _props
protected SettableAnyProperty _anySetter
protected HashSet<String> _ignorableProps
protected boolean _ignoreAllUnknown
Constructor Detail |
---|
public BeanDeserializer(JavaType type)
Method Detail |
---|
public void setDefaultConstructor(Constructor<?> ctor)
public void setCreators(CreatorContainer creators)
public void addProperty(SettableBeanProperty prop)
IllegalArgumentException
.
public SettableBeanProperty removeProperty(String name)
public void setAnySetter(SettableAnyProperty s)
public void setIgnoreUnknownProperties(boolean ignore)
public void addIgnorable(String propName)
public void validateCreators() throws JsonMappingException
JsonMappingException
public void resolve(DeserializationConfig config, DeserializerProvider provider) throws JsonMappingException
resolve
in interface ResolvableDeserializer
provider
- Provider that has constructed deserializer this method
is called on.
JsonMappingException
public final Object deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException
JsonDeserializer
Pre-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<Object>
jp
- Parsed used for reading Json contentctxt
- Context that can be used to access information about
this deserialization activity.
IOException
JsonProcessingException
public final Class<?> getBeanClass()
public JavaType getValueType()
getValueType
in class StdDeserializer<Object>
public Object deserializeFromObject(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException
IOException
JsonProcessingException
public Object deserializeFromString(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException
IOException
JsonProcessingException
public Object deserializeFromNumber(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException
IOException
JsonProcessingException
public Object deserializeUsingCreator(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException
IOException
JsonProcessingException
protected final Object _deserializeUsingPropertyBased(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException
IOException
JsonProcessingException
protected Object _deserializeProperties(JsonParser jp, DeserializationContext ctxt, Object bean) throws IOException, JsonProcessingException
IOException
JsonProcessingException
protected void handleUnknownProperty(DeserializationContext ctxt, Object beanOrClass, String propName) throws IOException, JsonProcessingException
handleUnknownProperty
in class StdDeserializer<Object>
ctxt
- Context for deserialization; allows access to the parser,
error reporting functionalitybeanOrClass
- Instance that is being populated by this
deserializer, or if not known, Class that would be instantiated.
If null, will assume type is what StdDeserializer.getValueClass()
returns.propName
- Name of the property that can not be mapped
IOException
JsonProcessingException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |