org.codehaus.jackson.map.deser
Class SettableAnyProperty

java.lang.Object
  extended by org.codehaus.jackson.map.deser.SettableAnyProperty

public final class SettableAnyProperty
extends Object

Class that represents a "wildcard" set method which can be used to generically set values of otherwise unmapped (aka "unknown") properties read from Json content.

!!! Note: might make sense to refactor to share some code with SettableBeanProperty?


Field Summary
protected  BeanProperty _property
          Method used for setting "any" properties, along with annotation information.
protected  Method _setter
          Physical JDK object used for assigning properties.
protected  JavaType _type
           
protected  JsonDeserializer<Object> _valueDeserializer
           
 
Constructor Summary
SettableAnyProperty(BeanProperty property, AnnotatedMethod setter, JavaType type)
          Deprecated. Since 1.9 - use variant that takes deserializer
SettableAnyProperty(BeanProperty property, AnnotatedMethod setter, JavaType type, JsonDeserializer<Object> valueDeser)
           
SettableAnyProperty(BeanProperty property, Method rawSetter, JavaType type, JsonDeserializer<Object> valueDeser)
           
 
Method Summary
protected  void _throwAsIOE(Exception e, String propName, Object value)
           
 Object deserialize(JsonParser jp, DeserializationContext ctxt)
           
 void deserializeAndSet(JsonParser jp, DeserializationContext ctxt, Object instance, String propName)
          Method called to deserialize appropriate value, given parser (and context), and set it using appropriate method (a setter method).
 BeanProperty getProperty()
           
 JavaType getType()
           
 boolean hasValueDeserializer()
           
 void set(Object instance, String propName, Object value)
           
 void setValueDeserializer(JsonDeserializer<Object> deser)
          Deprecated. Since 1.9 - construct with deserializer
 String toString()
           
 SettableAnyProperty withValueDeserializer(JsonDeserializer<Object> deser)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_property

protected final BeanProperty _property
Method used for setting "any" properties, along with annotation information. Retained to allow contextualization of any properties.

Since:
1.7

_setter

protected final Method _setter
Physical JDK object used for assigning properties.


_type

protected final JavaType _type

_valueDeserializer

protected JsonDeserializer<Object> _valueDeserializer
Constructor Detail

SettableAnyProperty

@Deprecated
public SettableAnyProperty(BeanProperty property,
                                      AnnotatedMethod setter,
                                      JavaType type)
Deprecated. Since 1.9 - use variant that takes deserializer


SettableAnyProperty

public SettableAnyProperty(BeanProperty property,
                           AnnotatedMethod setter,
                           JavaType type,
                           JsonDeserializer<Object> valueDeser)

SettableAnyProperty

public SettableAnyProperty(BeanProperty property,
                           Method rawSetter,
                           JavaType type,
                           JsonDeserializer<Object> valueDeser)
Method Detail

withValueDeserializer

public SettableAnyProperty withValueDeserializer(JsonDeserializer<Object> deser)

setValueDeserializer

@Deprecated
public void setValueDeserializer(JsonDeserializer<Object> deser)
Deprecated. Since 1.9 - construct with deserializer


getProperty

public BeanProperty getProperty()

hasValueDeserializer

public boolean hasValueDeserializer()

getType

public JavaType getType()

deserializeAndSet

public final void deserializeAndSet(JsonParser jp,
                                    DeserializationContext ctxt,
                                    Object instance,
                                    String propName)
                             throws IOException,
                                    JsonProcessingException
Method called to deserialize appropriate value, given parser (and context), and set it using appropriate method (a setter method).

Throws:
IOException
JsonProcessingException

deserialize

public final Object deserialize(JsonParser jp,
                                DeserializationContext ctxt)
                         throws IOException,
                                JsonProcessingException
Throws:
IOException
JsonProcessingException

set

public final void set(Object instance,
                      String propName,
                      Object value)
               throws IOException
Throws:
IOException

_throwAsIOE

protected void _throwAsIOE(Exception e,
                           String propName,
                           Object value)
                    throws IOException
Parameters:
e - Exception to re-throw or wrap
propName - Name of property (from Json input) to set
value - Value of the property
Throws:
IOException

toString

public String toString()
Overrides:
toString in class Object