Class SettableAnyProperty
- java.lang.Object
-
- com.fasterxml.jackson.databind.deser.SettableAnyProperty
-
- All Implemented Interfaces:
java.io.Serializable
public class SettableAnyProperty extends java.lang.Object implements java.io.Serializable
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
?- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
SettableAnyProperty.AnySetterReferring
-
Field Summary
Fields Modifier and Type Field Description protected KeyDeserializer
_keyDeserializer
protected BeanProperty
_property
Method used for setting "any" properties, along with annotation information.protected AnnotatedMember
_setter
Annotated variant is needed for JDK serialization only(package private) boolean
_setterIsField
protected JavaType
_type
protected JsonDeserializer<java.lang.Object>
_valueDeserializer
protected TypeDeserializer
_valueTypeDeserializer
private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description SettableAnyProperty(BeanProperty property, AnnotatedMember setter, JavaType type, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser)
Deprecated.SettableAnyProperty(BeanProperty property, AnnotatedMember setter, JavaType type, KeyDeserializer keyDeser, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_throwAsIOE(java.lang.Exception e, java.lang.Object propName, java.lang.Object value)
java.lang.Object
deserialize(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt)
void
deserializeAndSet(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, java.lang.Object instance, java.lang.String propName)
Method called to deserialize appropriate value, given parser (and context), and set it using appropriate method (a setter method).void
fixAccess(DeserializationConfig config)
private java.lang.String
getClassName()
BeanProperty
getProperty()
JavaType
getType()
boolean
hasValueDeserializer()
(package private) java.lang.Object
readResolve()
Need to define this to verify that we retain actual Method referencevoid
set(java.lang.Object instance, java.lang.Object propName, java.lang.Object value)
java.lang.String
toString()
SettableAnyProperty
withValueDeserializer(JsonDeserializer<java.lang.Object> deser)
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
_property
protected final BeanProperty _property
Method used for setting "any" properties, along with annotation information. Retained to allow contextualization of any properties.
-
_setter
protected final AnnotatedMember _setter
Annotated variant is needed for JDK serialization only
-
_setterIsField
final boolean _setterIsField
-
_type
protected final JavaType _type
-
_valueDeserializer
protected JsonDeserializer<java.lang.Object> _valueDeserializer
-
_valueTypeDeserializer
protected final TypeDeserializer _valueTypeDeserializer
-
_keyDeserializer
protected final KeyDeserializer _keyDeserializer
- Since:
- 2.9
-
-
Constructor Detail
-
SettableAnyProperty
public SettableAnyProperty(BeanProperty property, AnnotatedMember setter, JavaType type, KeyDeserializer keyDeser, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser)
-
SettableAnyProperty
@Deprecated public SettableAnyProperty(BeanProperty property, AnnotatedMember setter, JavaType type, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser)
Deprecated.
-
-
Method Detail
-
withValueDeserializer
public SettableAnyProperty withValueDeserializer(JsonDeserializer<java.lang.Object> deser)
-
fixAccess
public void fixAccess(DeserializationConfig config)
-
readResolve
java.lang.Object readResolve()
Need to define this to verify that we retain actual Method reference
-
getProperty
public BeanProperty getProperty()
-
hasValueDeserializer
public boolean hasValueDeserializer()
-
getType
public JavaType getType()
-
deserializeAndSet
public final void deserializeAndSet(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, java.lang.Object instance, java.lang.String propName) throws java.io.IOException
Method called to deserialize appropriate value, given parser (and context), and set it using appropriate method (a setter method).- Throws:
java.io.IOException
-
deserialize
public java.lang.Object deserialize(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
- Throws:
java.io.IOException
-
set
public void set(java.lang.Object instance, java.lang.Object propName, java.lang.Object value) throws java.io.IOException
- Throws:
java.io.IOException
-
_throwAsIOE
protected void _throwAsIOE(java.lang.Exception e, java.lang.Object propName, java.lang.Object value) throws java.io.IOException
- Parameters:
e
- Exception to re-throw or wrappropName
- Name of property (from Json input) to setvalue
- Value of the property- Throws:
java.io.IOException
-
getClassName
private java.lang.String getClassName()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-