com.fasterxml.jackson.databind.deser

Class SettableBeanProperty

    • Field Detail

      • MISSING_VALUE_DESERIALIZER

        protected static final JsonDeserializer<Object> MISSING_VALUE_DESERIALIZER
        To avoid nasty NPEs, let's use a placeholder for _valueDeserializer, if real deserializer is not (yet) available.
        Since:
        2.2
      • _propName

        protected final PropertyName _propName
        Logical name of the property (often but not always derived from the setter method name)
      • _type

        protected final JavaType _type
        Base type for property; may be a supertype of actual value.
      • _wrapperName

        protected final PropertyName _wrapperName
        Since:
        2.2
      • _contextAnnotations

        protected final transient 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.
      • _valueDeserializer

        protected final JsonDeserializer<Object> _valueDeserializer
        Deserializer used for handling property value.

        NOTE: has been immutable since 2.3

      • _valueTypeDeserializer

        protected final TypeDeserializer _valueTypeDeserializer
        If value will contain type information (to support polymorphic handling), this is the type deserializer used to handle type resolution.
      • _metadata

        protected final PropertyMetadata _metadata
        Additional optional property metadata, such as whether property is required, and whether there is additional human-readable description
        Since:
        2.3
      • _managedReferenceName

        protected String _managedReferenceName
        If property represents a managed (forward) reference (see [JACKSON-235]), we will need name of reference for later linking.

        TODO: should try to make immutable.

      • _objectIdInfo

        protected ObjectIdInfo _objectIdInfo
        This is the information for object identity associated with the property.

        TODO: should try to make immutable.

      • _viewMatcher

        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.

        TODO: should try to make immutable.

      • _propertyIndex

        protected int _propertyIndex
        Index of property (within all property of a bean); assigned when all properties have been collected. Order of entries is arbitrary, but once indexes are assigned they are not changed.

        TODO: should try to make immutable if at all possible

    • Method Detail

      • withValueDeserializer

        public abstract SettableBeanProperty withValueDeserializer(JsonDeserializer<?> deser)
        Fluent factory method for constructing and returning a new instance with specified value deserializer. Note that this method should NOT change configuration of this instance.
        Parameters:
        deser - Deserializer to assign to the new property instance
        Returns:
        Newly constructed instance, if value deserializer differs from the one used for this instance; or 'this' if not.
      • withName

        public abstract SettableBeanProperty withName(PropertyName newName)
        Fluent factory method for constructing and returning a new instance with specified property name. Note that this method should NOT change configuration of this instance.
        Parameters:
        newName - Name to use for the new instance.
        Returns:
        Newly constructed instance, if property name differs from the one used for this instance; or 'this' if not.
      • setManagedReferenceName

        public void setManagedReferenceName(String n)
      • setObjectIdInfo

        public void setObjectIdInfo(ObjectIdInfo objectIdInfo)
      • setViews

        public void setViews(Class<?>[] views)
      • assignIndex

        public void assignIndex(int index)
        Method used to assign index for property.
      • getFullName

        public PropertyName getFullName()
        Description copied from interface: BeanProperty
        Method for getting full name definition, including possible format-specific additional properties (such as namespace when using XML backend).
        Specified by:
        getFullName in interface BeanProperty
      • isRequired

        public boolean isRequired()
        Description copied from interface: BeanProperty
        Whether value for property is marked as required using annotations or associated schema. Equivalent to: getMetadata().isRequired()
        Specified by:
        isRequired in interface BeanProperty
      • getMetadata

        public PropertyMetadata getMetadata()
        Description copied from interface: BeanProperty
        Accessor for additional optional information about property.
        Specified by:
        getMetadata in interface BeanProperty
        Returns:
        Metadata about property; never null.
      • getMember

        public abstract AnnotatedMember getMember()
        Description copied from interface: BeanProperty
        Method for accessing primary physical entity that represents the property; annotated field, method or constructor property.
        Specified by:
        getMember in interface BeanProperty
      • getAnnotation

        public abstract <A extends Annotation> A getAnnotation(Class<A> acls)
        Description copied from interface: BeanProperty
        Method for finding annotation associated with this property; meaning annotation associated with one of entities used to access property.

        Note that this method should only be called for custom annotations; access to standard Jackson annotations (or ones supported by alternate AnnotationIntrospectors) should be accessed through AnnotationIntrospector.

        Specified by:
        getAnnotation in interface BeanProperty
      • getContextAnnotation

        public <A extends Annotation> A getContextAnnotation(Class<A> acls)
        Description copied from interface: BeanProperty
        Method for finding annotation associated with context of this property; usually class in which member is declared (or its subtype if processing subtype).

        Note that this method should only be called for custom annotations; access to standard Jackson annotations (or ones supported by alternate AnnotationIntrospectors) should be accessed through AnnotationIntrospector.

        Specified by:
        getContextAnnotation in interface BeanProperty
      • getDeclaringClass

        protected final Class<?> getDeclaringClass()
      • getManagedReferenceName

        public String getManagedReferenceName()
      • hasValueDeserializer

        public boolean hasValueDeserializer()
      • hasValueTypeDeserializer

        public boolean hasValueTypeDeserializer()
      • visibleInView

        public boolean visibleInView(Class<?> activeView)
      • hasViews

        public boolean hasViews()
      • getPropertyIndex

        public int getPropertyIndex()
        Method for accessing unique index of this property; indexes are assigned once all properties of a BeanDeserializer have been collected.
        Returns:
        Index of this property
      • getCreatorIndex

        public int getCreatorIndex()
        Method for accessing index of the creator property: for other types of properties will simply return -1.
        Since:
        2.1
      • getInjectableValueId

        public Object getInjectableValueId()
        Accessor for id of injectable value, if this bean property supports value injection.
      • deserializeAndSet

        public abstract void deserializeAndSet(JsonParser p,
                             DeserializationContext ctxt,
                             Object instance)
                                        throws IOException
        Method called to deserialize appropriate value, given parser (and context), and set it using appropriate mechanism. 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).
        Throws:
        IOException
      • set

        public abstract void set(Object instance,
               Object value)
                          throws IOException
        Method called to assign given value to this property, on specified Object.

        Note: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.

        Throws:
        IOException
      • setAndReturn

        public abstract Object setAndReturn(Object instance,
                          Object value)
                                     throws IOException
        Method called to assign given value to this property, on specified Object, and return whatever delegating accessor returned (if anything)

        Note: this is an optional operation, not supported by all implementations, creator-backed properties for example do not support this method.

        Throws:
        IOException
      • _throwAsIOE

        protected void _throwAsIOE(Exception e,
                       Object value)
                            throws IOException
        Method that takes in exception of any type, and casts or wraps it to an IOException or its subclass.
        Throws:
        IOException

Copyright © 2008–2018 FasterXML. All rights reserved.