Class SettableAnyProperty
- java.lang.Object
-
- com.fasterxml.jackson.databind.deser.SettableAnyProperty
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
SettableAnyProperty.JsonNodeFieldAnyProperty
,SettableAnyProperty.JsonNodeParameterAnyProperty
,SettableAnyProperty.MapFieldAnyProperty
,SettableAnyProperty.MapParameterAnyProperty
,SettableAnyProperty.MethodAnyProperty
public abstract 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: starting with 2.14, is
abstract
class with multiple concrete implementations- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
SettableAnyProperty.JsonNodeFieldAnyProperty
protected static class
SettableAnyProperty.JsonNodeParameterAnyProperty
[databind#562] Allow @JsonAnySetter on Creator constructorprotected static class
SettableAnyProperty.MapFieldAnyProperty
protected static class
SettableAnyProperty.MapParameterAnyProperty
[databind#562] Allow @JsonAnySetter on Creator constructorprotected static class
SettableAnyProperty.MethodAnyProperty
-
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 onlyprotected boolean
_setterIsField
protected JavaType
_type
protected JsonDeserializer<java.lang.Object>
_valueDeserializer
protected TypeDeserializer
_valueTypeDeserializer
-
Constructor Summary
Constructors Constructor Description SettableAnyProperty(BeanProperty property, AnnotatedMember setter, JavaType type, KeyDeserializer keyDeser, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
_set(java.lang.Object instance, java.lang.Object propName, java.lang.Object value)
protected void
_throwAsIOE(java.lang.Exception e, java.lang.Object propName, java.lang.Object value)
static SettableAnyProperty
constructForJsonNodeField(DeserializationContext ctxt, BeanProperty property, AnnotatedMember field, JavaType valueType, JsonDeserializer<java.lang.Object> valueDeser)
static SettableAnyProperty
constructForJsonNodeParameter(DeserializationContext ctxt, BeanProperty prop, AnnotatedMember mutator, JavaType valueType, JsonDeserializer<java.lang.Object> valueDeser, int parameterIndex)
static SettableAnyProperty
constructForMapField(DeserializationContext ctxt, BeanProperty property, AnnotatedMember field, JavaType valueType, KeyDeserializer keyDeser, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser)
static SettableAnyProperty
constructForMapParameter(DeserializationContext ctxt, BeanProperty property, AnnotatedMember field, JavaType valueType, KeyDeserializer keyDeser, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser, int parameterIndex)
static SettableAnyProperty
constructForMethod(DeserializationContext ctxt, BeanProperty property, AnnotatedMember field, JavaType valueType, KeyDeserializer keyDeser, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser)
java.lang.Object
createParameterObject()
Create an instance of value to pass through Creator parameter.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)
int
getParameterIndex()
Accessor for parameterIndex.BeanProperty
getProperty()
java.lang.String
getPropertyName()
JavaType
getType()
boolean
hasValueDeserializer()
boolean
isFieldType()
Method called to check whether this property is fieldvoid
set(java.lang.Object instance, java.lang.Object propName, java.lang.Object value)
java.lang.String
toString()
abstract SettableAnyProperty
withValueDeserializer(JsonDeserializer<java.lang.Object> deser)
-
-
-
Field Detail
-
_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
protected 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)
-
-
Method Detail
-
constructForMethod
public static SettableAnyProperty constructForMethod(DeserializationContext ctxt, BeanProperty property, AnnotatedMember field, JavaType valueType, KeyDeserializer keyDeser, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser)
- Since:
- 2.14
-
constructForMapField
public static SettableAnyProperty constructForMapField(DeserializationContext ctxt, BeanProperty property, AnnotatedMember field, JavaType valueType, KeyDeserializer keyDeser, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser)
- Since:
- 2.14
-
constructForJsonNodeField
public static SettableAnyProperty constructForJsonNodeField(DeserializationContext ctxt, BeanProperty property, AnnotatedMember field, JavaType valueType, JsonDeserializer<java.lang.Object> valueDeser)
- Since:
- 2.14
-
constructForMapParameter
public static SettableAnyProperty constructForMapParameter(DeserializationContext ctxt, BeanProperty property, AnnotatedMember field, JavaType valueType, KeyDeserializer keyDeser, JsonDeserializer<java.lang.Object> valueDeser, TypeDeserializer typeDeser, int parameterIndex)
- Since:
- 2.18
-
constructForJsonNodeParameter
public static SettableAnyProperty constructForJsonNodeParameter(DeserializationContext ctxt, BeanProperty prop, AnnotatedMember mutator, JavaType valueType, JsonDeserializer<java.lang.Object> valueDeser, int parameterIndex)
-
withValueDeserializer
public abstract SettableAnyProperty withValueDeserializer(JsonDeserializer<java.lang.Object> deser)
-
fixAccess
public void fixAccess(DeserializationConfig config)
-
getProperty
public BeanProperty getProperty()
-
hasValueDeserializer
public boolean hasValueDeserializer()
-
getType
public JavaType getType()
-
getPropertyName
public java.lang.String getPropertyName()
- Since:
- 2.14
-
getParameterIndex
public int getParameterIndex()
Accessor for parameterIndex.- Returns:
- -1 if not a parameterized setter, otherwise index of parameter
- Since:
- 2.18
-
isFieldType
public boolean isFieldType()
Method called to check whether this property is field- Since:
- 2.18.1
-
createParameterObject
public java.lang.Object createParameterObject()
Create an instance of value to pass through Creator parameter.- Since:
- 2.18
-
deserializeAndSet
public 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
-
_set
protected abstract void _set(java.lang.Object instance, java.lang.Object propName, java.lang.Object value) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_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
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-