com.fasterxml.jackson.databind

## Interface BeanProperty

All Superinterfaces:
  Named

All Known Implementing Classes:
  BeanProperty.Std, BeanPropertyWriter, CreatorProperty, FieldProperty, InnerClassProperty, ManagedReferenceProperty, MethodProperty, ObjectIdValueProperty, SettableBeanProperty, SetterlessProperty, UnwrappingBeanPropertyWriter, ValueInjector

    public interface BeanProperty
    extends Named

Bean properties are logical entities that represent data that Java objects (POJOs (Plain Old Java Objects), sometimes also called "beans") contain; and that are accessed using accessors (methods like getters and setters, fields, contstructor parametrers). Instances allow access to annotations directly associated to property (via field or method), as well as contextual annotations (annotations for class that contains properties).

Instances are not typically passed when constructing serializers and deserializers, but rather only passed when context is known when `ContextualSerializer` and `ContextualDeserializer` resolution occurs (`createContextual(...)` method is called). References may (need to) be retained by serializers and deserializers, especially when further resolving dependant handlers like value serializers/deserializers or structured types.

### Nested Class Summary

Nested Classes
`static class` `BeanProperty.Std` Simple stand-alone implementation, useful as a placeholder or base class for more complex implementations.

### Method Summary

Methods
`void` `depositSchemaProperty(JsonObjectFormatVisitor objectVisitor)` Method that can be called to visit the type structure that this property is part of.
`<A extends Annotation> A` `getAnnotation(Class<A> acls)` Method for finding annotation associated with this property; meaning annotation associated with one of entities used to access property.
`<A extends Annotation> A` `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).
`PropertyName` `getFullName()` Method for getting full name definition, including possible format-specific additional properties (such as namespace when using XML backend).
`AnnotatedMember` `getMember()` Method for accessing primary physical entity that represents the property; annotated field, method or constructor property.
`PropertyMetadata` `getMetadata()` Accessor for additional optional information about property.
`String` `getName()` Method to get logical name of the property
`JavaType` `getType()` Method to get declared type of the property.
`PropertyName` `getWrapperName()` If property is indicated to be wrapped, name of wrapper element to use.
`boolean` `isRequired()` Whether value for property is marked as required using annotations or associated schema.

### Method Detail

#### getName

    String getName()

Method to get logical name of the property

Specified by:
  `getName` in interface `Named`

#### getFullName

    PropertyName getFullName()

Method for getting full name definition, including possible format-specific additional properties (such as namespace when using XML backend).

Since:
  2.3

#### getType

    JavaType getType()

Method to get declared type of the property.

#### getWrapperName

    PropertyName getWrapperName()

If property is indicated to be wrapped, name of wrapper element to use.

Since:
  2.2

#### getMetadata

    PropertyMetadata getMetadata()

Accessor for additional optional information about property.

Since:
  2.3

#### isRequired

    boolean isRequired()

Whether value for property is marked as required using annotations or associated schema.

Since:
  2.2

#### getAnnotation

    <A extends Annotation> A getAnnotation(Class<A> acls)

Method for finding annotation associated with this property; meaning annotation associated with one of entities used to access property.

#### getContextAnnotation

    <A extends Annotation> A 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).

#### getMember

    AnnotatedMember getMember()

Method for accessing primary physical entity that represents the property; annotated field, method or constructor property.

#### depositSchemaProperty

    void depositSchemaProperty(JsonObjectFormatVisitor objectVisitor)
                               throws JsonMappingException

Method that can be called to visit the type structure that this property is part of. Note that not all implementations support traversal with this method; those that do not should throw `UnsupportedOperationException`.

Parameters:
  `objectVisitor` - Visitor to used as the callback handler
Throws:
  `JsonMappingException`
Since:
  2.2