|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.fasterxml.jackson.databind.deser.SettableBeanProperty
public abstract class SettableBeanProperty
Base class for deserilizable properties of a bean: contains both type and name definitions, and reflection-based set functionality. Concrete sub-classes implement details, so that field- and setter-backed properties, as well as a few more esoteric variations, can be handled.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface com.fasterxml.jackson.databind.BeanProperty |
---|
BeanProperty.Std |
Field Summary | |
---|---|
protected Annotations |
_contextAnnotations
Class that contains this property (either class that declares the property or one of its subclasses), class that is deserialized using deserializer that contains this property. |
protected String |
_managedReferenceName
If property represents a managed (forward) reference (see [JACKSON-235]), we will need name of reference for later linking. |
protected NullProvider |
_nullProvider
Object used to figure out value to be used when 'null' literal is encountered in JSON. |
protected int |
_propertyIndex
Index of property (within all property of a bean); assigned when all properties have been collected. |
protected String |
_propName
Logical name of the property (often but not always derived from the setter method name) |
protected JavaType |
_type
Base type for property; may be a supertype of actual value. |
protected JsonDeserializer<Object> |
_valueDeserializer
Deserializer used for handling property value. |
protected TypeDeserializer |
_valueTypeDeserializer
If value will contain type information (to support polymorphic handling), this is the type deserializer used to handle type resolution. |
protected ViewMatcher |
_viewMatcher
Helper object used for checking whether this property is to be included in the active view, if property is view-specific; null otherwise. |
Constructor Summary | |
---|---|
protected |
SettableBeanProperty(BeanPropertyDefinition propDef,
JavaType type,
TypeDeserializer typeDeser,
Annotations contextAnnotations)
|
protected |
SettableBeanProperty(SettableBeanProperty src)
Basic copy-constructor for sub-classes to use. |
protected |
SettableBeanProperty(SettableBeanProperty src,
JsonDeserializer<?> deser)
Copy-with-deserializer-change constructor for sub-classes to use. |
protected |
SettableBeanProperty(SettableBeanProperty src,
String newName)
Copy-with-deserializer-change constructor for sub-classes to use. |
protected |
SettableBeanProperty(String propName,
JavaType type,
TypeDeserializer typeDeser,
Annotations contextAnnotations)
|
Method Summary | ||
---|---|---|
protected IOException |
_throwAsIOE(Exception e)
|
|
protected void |
_throwAsIOE(Exception e,
Object value)
Method that takes in exception of any type, and casts or wraps it to an IOException or its subclass. |
|
void |
assignIndex(int index)
Method used to assign index for property. |
|
Object |
deserialize(JsonParser jp,
DeserializationContext ctxt)
This method is needed by some specialized bean deserializers, and also called by some deserializeAndSet(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, java.lang.Object) implementations. |
|
abstract void |
deserializeAndSet(JsonParser jp,
DeserializationContext ctxt,
Object instance)
Method called to deserialize appropriate value, given parser (and context), and set it using appropriate mechanism. |
|
abstract Object |
deserializeSetAndReturn(JsonParser jp,
DeserializationContext ctxt,
Object instance)
Alternative to deserializeAndSet(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, java.lang.Object) that returns
either return value of setter method called (if one is),
or null to indicate that no return value is available. |
|
abstract
|
getAnnotation(Class<A> acls)
Method for finding annotation associated with this property; meaning annotation associated with one of entities used to access property. |
|
|
getContextAnnotation(Class<A> acls)
Method for finding annotation associated with context of this property; usually class in which member is declared (or its subtype if processing subtype). |
|
int |
getCreatorIndex()
Method for accessing index of the creator property: for other types of properties will simply return -1. |
|
protected Class<?> |
getDeclaringClass()
|
|
Object |
getInjectableValueId()
Accessor for id of injectable value, if this bean property supports value injection. |
|
String |
getManagedReferenceName()
|
|
abstract AnnotatedMember |
getMember()
Method for accessing primary physical entity that represents the property; annotated field, method or constructor property. |
|
String |
getName()
Method to get logical name of the property |
|
int |
getPropertyIndex()
Method for accessing unique index of this property; indexes are assigned once all properties of a BeanDeserializer have
been collected. |
|
JavaType |
getType()
Method to get declared type of the property. |
|
JsonDeserializer<Object> |
getValueDeserializer()
|
|
TypeDeserializer |
getValueTypeDeserializer()
|
|
boolean |
hasValueDeserializer()
|
|
boolean |
hasValueTypeDeserializer()
|
|
boolean |
hasViews()
|
|
abstract void |
set(Object instance,
Object value)
Method called to assign given value to this property, on specified Object. |
|
abstract Object |
setAndReturn(Object instance,
Object value)
Method called to assign given value to this property, on specified Object, and return whatever delegating accessor returned (if anything) |
|
void |
setManagedReferenceName(String n)
|
|
void |
setViews(Class<?>[] views)
|
|
String |
toString()
|
|
boolean |
visibleInView(Class<?> activeView)
|
|
abstract SettableBeanProperty |
withName(String newName)
Fluent factory method for constructing and returning a new instance with specified propert name. |
|
abstract SettableBeanProperty |
withValueDeserializer(JsonDeserializer<?> deser)
Fluent factory method for constructing and returning a new instance with specified value deserializer. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final String _propName
protected final JavaType _type
protected final transient Annotations _contextAnnotations
protected JsonDeserializer<Object> _valueDeserializer
protected TypeDeserializer _valueTypeDeserializer
protected NullProvider _nullProvider
protected String _managedReferenceName
protected ViewMatcher _viewMatcher
protected int _propertyIndex
Constructor Detail |
---|
protected SettableBeanProperty(BeanPropertyDefinition propDef, JavaType type, TypeDeserializer typeDeser, Annotations contextAnnotations)
protected SettableBeanProperty(String propName, JavaType type, TypeDeserializer typeDeser, Annotations contextAnnotations)
protected SettableBeanProperty(SettableBeanProperty src)
protected SettableBeanProperty(SettableBeanProperty src, JsonDeserializer<?> deser)
protected SettableBeanProperty(SettableBeanProperty src, String newName)
Method Detail |
---|
public abstract SettableBeanProperty withValueDeserializer(JsonDeserializer<?> deser)
deser
- Deserializer to assign to the new property instance
public abstract SettableBeanProperty withName(String newName)
newName
- Name to use for the new instance.
public void setManagedReferenceName(String n)
public void setViews(Class<?>[] views)
public void assignIndex(int index)
public final String getName()
BeanProperty
getName
in interface BeanProperty
getName
in interface Named
public JavaType getType()
BeanProperty
getType
in interface BeanProperty
public abstract <A extends Annotation> A getAnnotation(Class<A> acls)
BeanProperty
getAnnotation
in interface BeanProperty
public abstract AnnotatedMember getMember()
BeanProperty
getMember
in interface BeanProperty
public <A extends Annotation> A getContextAnnotation(Class<A> acls)
BeanProperty
getContextAnnotation
in interface BeanProperty
protected final Class<?> getDeclaringClass()
public String getManagedReferenceName()
public boolean hasValueDeserializer()
public boolean hasValueTypeDeserializer()
public JsonDeserializer<Object> getValueDeserializer()
public TypeDeserializer getValueTypeDeserializer()
public boolean visibleInView(Class<?> activeView)
public boolean hasViews()
public int getPropertyIndex()
BeanDeserializer
have
been collected.
public int getCreatorIndex()
public Object getInjectableValueId()
public abstract void deserializeAndSet(JsonParser jp, DeserializationContext ctxt, Object instance) throws IOException, JsonProcessingException
IOException
JsonProcessingException
public abstract Object deserializeSetAndReturn(JsonParser jp, DeserializationContext ctxt, Object instance) throws IOException, JsonProcessingException
deserializeAndSet(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, java.lang.Object)
that returns
either return value of setter method called (if one is),
or null to indicate that no return value is available.
Mostly used to support Builder style deserialization.
IOException
JsonProcessingException
public abstract void set(Object instance, Object value) throws IOException
Note: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.
IOException
public abstract Object setAndReturn(Object instance, Object value) throws IOException
Note: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.
IOException
public final Object deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException
deserializeAndSet(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, java.lang.Object)
implementations.
Pre-condition is that passed parser must point to the first token that should be consumed to produce the value (the only value for scalars, multiple for Objects and Arrays).
Note that this method is final for performance reasons: to override functionality you must override other methods that call this method; this method should also not be called directly unless you really know what you are doing (and probably not even then).
IOException
JsonProcessingException
protected void _throwAsIOE(Exception e, Object value) throws IOException
IOException
protected IOException _throwAsIOE(Exception e) throws IOException
IOException
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |