## Uses of Class
com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition

Packages that use BeanPropertyDefinition
com.fasterxml.jackson.databind: Basic data binding (mapping) functionality that allows for reading JSON content into Java Objects (POJOs) and JSON Trees (`JsonNode`), as well as writing Java Objects and trees as JSON.
com.fasterxml.jackson.databind.cfg: Package that contains most of configuration-related classes; exception being couple of most-commonly used configuration things (like Feature enumerations) that are at the main level (`com.fasterxml.jackson.databind`).
com.fasterxml.jackson.databind.deser: Contains implementation classes of deserialization part of data binding.
com.fasterxml.jackson.databind.deser.impl: Contains those implementation classes of deserialization part of data binding that are not considered part of public or semi-public interfaces.
com.fasterxml.jackson.databind.exc
com.fasterxml.jackson.databind.introspect: Functionality needed for Bean introspection, required for detecting accessors and mutators for Beans, as well as locating and handling method annotations.
com.fasterxml.jackson.databind.ser: Contains implementation classes of serialization part of data binding.
com.fasterxml.jackson.databind.ser.impl: Contains implementation classes of serialization part of data binding.
com.fasterxml.jackson.databind.util: Utility classes for Mapper package.

### Uses of BeanPropertyDefinition in com.fasterxml.jackson.databind

Methods in com.fasterxml.jackson.databind that return types with arguments of type BeanPropertyDefinition
`abstract List<BeanPropertyDefinition>` BeanDescription.`findBackReferences()` Method for locating all back-reference properties (setters, fields) bean has
`abstract List<BeanPropertyDefinition>` BeanDescription.`findProperties()`

Methods in com.fasterxml.jackson.databind with parameters of type BeanPropertyDefinition
`abstract Object` SerializerProvider.`includeFilterInstance(BeanPropertyDefinition forProperty, Class<?> filterClass)` Method that can be called to construct and configure `JsonInclude` filter instance, given a `Class` to instantiate (with default constructor, by default).
`<T> T` SerializerProvider.`reportBadPropertyDefinition(BeanDescription bean, BeanPropertyDefinition prop, String message, Object... msgArgs)` Helper method called to indicate problem in POJO (serialization) definitions or settings regarding specific property (of a type), unrelated to actual JSON content to map.
`<T> T` DeserializationContext.`reportBadPropertyDefinition(BeanDescription bean, BeanPropertyDefinition prop, String msg, Object... msgArgs)` Helper method called to indicate problem in POJO (serialization) definitions or settings regarding specific property (of a type), unrelated to actual JSON content to map.

### Uses of BeanPropertyDefinition in com.fasterxml.jackson.databind.cfg

Methods in com.fasterxml.jackson.databind.cfg with parameters of type BeanPropertyDefinition
`Object` HandlerInstantiator.`includeFilterInstance(SerializationConfig config, BeanPropertyDefinition forProperty, Class<?> filterClass)` Method called to construct a Filter (any Object with implementation of `equals(Object)` that determines if given value is to be excluded (true) or included (false)) to be used based on `JsonInclude` annotation (or equivalent).

### Uses of BeanPropertyDefinition in com.fasterxml.jackson.databind.deser

Methods in com.fasterxml.jackson.databind.deser that return types with arguments of type BeanPropertyDefinition
`protected List<BeanPropertyDefinition>` BeanDeserializerFactory.`filterBeanProps(DeserializationContext ctxt, BeanDescription beanDesc, BeanDeserializerBuilder builder, List<BeanPropertyDefinition> propDefsIn, Set<String> ignored)` Deprecated. in 2.12, remove from 3.0
`protected List<BeanPropertyDefinition>` BeanDeserializerFactory.`filterBeanProps(DeserializationContext ctxt, BeanDescription beanDesc, BeanDeserializerBuilder builder, List<BeanPropertyDefinition> propDefsIn, Set<String> ignored, Set<String> included)` Helper method called to filter out explicit ignored properties, as well as properties that have "ignorable types".

`List<BeanPropertyDefinition>`

BeanDeserializerModifier.`updateProperties(DeserializationConfig config, BeanDescription beanDesc, List<BeanPropertyDefinition> propDefs)`
Method called by `BeanDeserializerFactory` when it has collected initial list of `BeanPropertyDefinition`s, and done basic by-name and by-type filtering, but before constructing builder or actual property handlers; or arranging order.

Methods in com.fasterxml.jackson.databind.deser with parameters of type BeanPropertyDefinition
`protected SettableBeanProperty` BeanDeserializerFactory.`constructSettableProperty(DeserializationContext ctxt, BeanDescription beanDesc, BeanPropertyDefinition propDef, JavaType propType0)` Method that will construct a regular bean property setter using the given setter method.
`protected SettableBeanProperty` BeanDeserializerFactory.`constructSetterlessProperty(DeserializationContext ctxt, BeanDescription beanDesc, BeanPropertyDefinition propDef)` Method that will construct a regular bean property setter using the given setter method.
`protected boolean` BeanDeserializerFactory.`isIgnorableType(DeserializationConfig config, BeanPropertyDefinition propDef, Class<?> type, Map<Class<?>,Boolean> ignoredTypes)` Helper method that will check whether given raw type is marked as always ignorable (for purpose of ignoring properties with type)

Method parameters in com.fasterxml.jackson.databind.deser with type arguments of type BeanPropertyDefinition
`protected List<BeanPropertyDefinition>` BeanDeserializerFactory.`filterBeanProps(DeserializationContext ctxt, BeanDescription beanDesc, BeanDeserializerBuilder builder, List<BeanPropertyDefinition> propDefsIn, Set<String> ignored)` Deprecated. in 2.12, remove from 3.0
`protected List<BeanPropertyDefinition>` BeanDeserializerFactory.`filterBeanProps(DeserializationContext ctxt, BeanDescription beanDesc, BeanDeserializerBuilder builder, List<BeanPropertyDefinition> propDefsIn, Set<String> ignored, Set<String> included)` Helper method called to filter out explicit ignored properties, as well as properties that have "ignorable types".

`List<BeanPropertyDefinition>`

BeanDeserializerModifier.`updateProperties(DeserializationConfig config, BeanDescription beanDesc, List<BeanPropertyDefinition> propDefs)`
Method called by `BeanDeserializerFactory` when it has collected initial list of `BeanPropertyDefinition`s, and done basic by-name and by-type filtering, but before constructing builder or actual property handlers; or arranging order.

Constructors in com.fasterxml.jackson.databind.deser with parameters of type BeanPropertyDefinition
Constructor and Description
`SettableBeanProperty(BeanPropertyDefinition propDef, JavaType type, TypeDeserializer typeDeser, Annotations contextAnnotations)`

### Uses of BeanPropertyDefinition in com.fasterxml.jackson.databind.deser.impl

Fields in com.fasterxml.jackson.databind.deser.impl declared as BeanPropertyDefinition
`BeanPropertyDefinition` CreatorCandidate.Param.`propDef`

Methods in com.fasterxml.jackson.databind.deser.impl that return BeanPropertyDefinition
`BeanPropertyDefinition` CreatorCandidate.`propertyDef(int i)`

Methods in com.fasterxml.jackson.databind.deser.impl with parameters of type BeanPropertyDefinition
`static CreatorCandidate` CreatorCandidate.`construct(AnnotationIntrospector intr, AnnotatedWithParams creator, BeanPropertyDefinition[] propDefs)`

Constructors in com.fasterxml.jackson.databind.deser.impl with parameters of type BeanPropertyDefinition
Constructor and Description
`FieldProperty(BeanPropertyDefinition propDef, JavaType type, TypeDeserializer typeDeser, Annotations contextAnnotations, AnnotatedField field)`
`MethodProperty(BeanPropertyDefinition propDef, JavaType type, TypeDeserializer typeDeser, Annotations contextAnnotations, AnnotatedMethod method)`
`Param(AnnotatedParameter p, BeanPropertyDefinition pd, com.fasterxml.jackson.annotation.JacksonInject.Value i)`
`SetterlessProperty(BeanPropertyDefinition propDef, JavaType type, TypeDeserializer typeDeser, Annotations contextAnnotations, AnnotatedMethod method)`

### Uses of BeanPropertyDefinition in com.fasterxml.jackson.databind.exc

Fields in com.fasterxml.jackson.databind.exc declared as BeanPropertyDefinition
`protected BeanPropertyDefinition` InvalidDefinitionException.`_property`

Methods in com.fasterxml.jackson.databind.exc that return BeanPropertyDefinition
`BeanPropertyDefinition` InvalidDefinitionException.`getProperty()` Accessor for property that had the definition problem if any (none, for example if the problem relates to type in general), if known.

Methods in com.fasterxml.jackson.databind.exc with parameters of type BeanPropertyDefinition
`static InvalidDefinitionException` InvalidDefinitionException.`from(JsonGenerator g, String msg, BeanDescription bean, BeanPropertyDefinition prop)`
`static InvalidDefinitionException` InvalidDefinitionException.`from(JsonParser p, String msg, BeanDescription bean, BeanPropertyDefinition prop)`

Constructors in com.fasterxml.jackson.databind.exc with parameters of type BeanPropertyDefinition
Constructor and Description
`InvalidDefinitionException(JsonGenerator g, String msg, BeanDescription bean, BeanPropertyDefinition prop)`
`InvalidDefinitionException(JsonParser p, String msg, BeanDescription bean, BeanPropertyDefinition prop)`

### Uses of BeanPropertyDefinition in com.fasterxml.jackson.databind.introspect

Subclasses of BeanPropertyDefinition in com.fasterxml.jackson.databind.introspect
`class` `POJOPropertyBuilder` Helper class used for aggregating information about a single potential POJO property.

Fields in com.fasterxml.jackson.databind.introspect with type parameters of type BeanPropertyDefinition
`protected List<BeanPropertyDefinition>` BasicBeanDescription.`_properties` Properties collected for the POJO; initialized as needed.

Methods in com.fasterxml.jackson.databind.introspect that return BeanPropertyDefinition
`BeanPropertyDefinition` BasicBeanDescription.`findProperty(PropertyName name)`
`BeanPropertyDefinition[]` PotentialCreator.`propertyDefs()`
`abstract BeanPropertyDefinition` BeanPropertyDefinition.`withName(PropertyName newName)` Method that can be used to create a definition with same settings as this one, but with different (external) name; that is, one for which `getName()` would return `newName`.
`abstract BeanPropertyDefinition` BeanPropertyDefinition.`withSimpleName(String newSimpleName)` Alternate "mutant factory" that will only change simple name, but leave other optional parts (like namespace) as is.

Methods in com.fasterxml.jackson.databind.introspect that return types with arguments of type BeanPropertyDefinition
`protected List<BeanPropertyDefinition>` BasicBeanDescription.`_properties()`
`List<BeanPropertyDefinition>` BasicBeanDescription.`findBackReferences()`
`List<BeanPropertyDefinition>` BasicBeanDescription.`findProperties()`
`List<BeanPropertyDefinition>` POJOPropertiesCollector.`getProperties()`

Methods in com.fasterxml.jackson.databind.introspect with parameters of type BeanPropertyDefinition
`boolean` BasicBeanDescription.`addProperty(BeanPropertyDefinition def)`

Method parameters in com.fasterxml.jackson.databind.introspect with type arguments of type BeanPropertyDefinition
`void` PotentialCreator.`assignPropertyDefs(List<? extends BeanPropertyDefinition> propertyDefs)`

Constructor parameters in com.fasterxml.jackson.databind.introspect with type arguments of type BeanPropertyDefinition
Constructor and Description
`BasicBeanDescription(MapperConfig<?> config, JavaType type, AnnotatedClass classDef, List<BeanPropertyDefinition> props)` Alternate constructor used in cases where property information is not needed, only class info.

### Uses of BeanPropertyDefinition in com.fasterxml.jackson.databind.ser

Methods in com.fasterxml.jackson.databind.ser with parameters of type BeanPropertyDefinition

`protected BeanPropertyWriter`

PropertyBuilder.`_constructPropertyWriter(BeanPropertyDefinition propDef, AnnotatedMember member, Annotations contextAnnotations, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, JavaType serType, boolean suppressNulls, Object suppressableValue, Class<?>[] includeInViews)`
Overridable factory method for actual construction of `BeanPropertyWriter`; often needed if subclassing `PropertyBuilder.buildWriter(com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition, com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.JsonSerializer<?>, com.fasterxml.jackson.databind.jsontype.TypeSerializer, com.fasterxml.jackson.databind.jsontype.TypeSerializer, com.fasterxml.jackson.databind.introspect.AnnotatedMember, boolean)` method.

`protected BeanPropertyWriter` BeanSerializerFactory.`_constructWriter(SerializerProvider prov, BeanPropertyDefinition propDef, PropertyBuilder pb, boolean staticTyping, AnnotatedMember accessor)` Secondary helper method for constructing `BeanPropertyWriter` for given member (field or method).
`protected BeanPropertyWriter` PropertyBuilder.`buildWriter(SerializerProvider prov, BeanPropertyDefinition propDef, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, TypeSerializer contentTypeSer, AnnotatedMember am, boolean defaultUseStaticTyping)`
`Object` DefaultSerializerProvider.`includeFilterInstance(BeanPropertyDefinition forProperty, Class<?> filterClass)`
`abstract VirtualBeanPropertyWriter` VirtualBeanPropertyWriter.`withConfig(MapperConfig<?> config, AnnotatedClass declaringClass, BeanPropertyDefinition propDef, JavaType type)` Contextualization method called on a newly constructed virtual bean property.

Method parameters in com.fasterxml.jackson.databind.ser with type arguments of type BeanPropertyDefinition
`protected void` BeanSerializerFactory.`removeIgnorableTypes(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyDefinition> properties)` Method that will apply by-type limitations (as per [JACKSON-429]); by default this is based on `JsonIgnoreType` annotation but can be supplied by module-provided introspectors too.
`protected void` BeanSerializerFactory.`removeSetterlessGetters(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyDefinition> properties)` Helper method that will remove all properties that do not have a mutator.

Constructors in com.fasterxml.jackson.databind.ser with parameters of type BeanPropertyDefinition
Constructor and Description
`BeanPropertyWriter(BeanPropertyDefinition propDef, AnnotatedMember member, Annotations contextAnnotations, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, JavaType serType, boolean suppressNulls, Object suppressableValue)` Deprecated.
`BeanPropertyWriter(BeanPropertyDefinition propDef, AnnotatedMember member, Annotations contextAnnotations, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, JavaType serType, boolean suppressNulls, Object suppressableValue, Class<?>[] includeInViews)`
`PropertyWriter(BeanPropertyDefinition propDef)`
`VirtualBeanPropertyWriter(BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType)` Constructor used by most sub-types.
`VirtualBeanPropertyWriter(BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, JavaType serType, com.fasterxml.jackson.annotation.JsonInclude.Value inclusion)` Deprecated.
`VirtualBeanPropertyWriter(BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, JavaType serType, com.fasterxml.jackson.annotation.JsonInclude.Value inclusion, Class<?>[] includeInViews)` Pass-through constructor that may be used by sub-classes that want full control over implementation.

### Uses of BeanPropertyDefinition in com.fasterxml.jackson.databind.ser.impl

Methods in com.fasterxml.jackson.databind.ser.impl with parameters of type BeanPropertyDefinition
`static AttributePropertyWriter` AttributePropertyWriter.`construct(String attrName, BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType)`
`VirtualBeanPropertyWriter` AttributePropertyWriter.`withConfig(MapperConfig<?> config, AnnotatedClass declaringClass, BeanPropertyDefinition propDef, JavaType type)` Since this method should typically not be called on this sub-type, default implementation simply throws an `IllegalStateException`.

Constructors in com.fasterxml.jackson.databind.ser.impl with parameters of type BeanPropertyDefinition
Constructor and Description
`AttributePropertyWriter(String attrName, BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType)`
`AttributePropertyWriter(String attrName, BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType, com.fasterxml.jackson.annotation.JsonInclude.Value inclusion)`

### Uses of BeanPropertyDefinition in com.fasterxml.jackson.databind.util

Subclasses of BeanPropertyDefinition in com.fasterxml.jackson.databind.util
`class` `SimpleBeanPropertyDefinition` Simple immutable `BeanPropertyDefinition` implementation that can be wrapped around a `AnnotatedMember` that is a simple accessor (getter) or mutator (setter, constructor parameter) (or both, for fields).

Methods in com.fasterxml.jackson.databind.util that return BeanPropertyDefinition
`BeanPropertyDefinition` SimpleBeanPropertyDefinition.`withInclusion(com.fasterxml.jackson.annotation.JsonInclude.Value inclusion)`
`BeanPropertyDefinition` SimpleBeanPropertyDefinition.`withMetadata(PropertyMetadata metadata)`
`BeanPropertyDefinition` SimpleBeanPropertyDefinition.`withName(PropertyName newName)`
`BeanPropertyDefinition` SimpleBeanPropertyDefinition.`withSimpleName(String newName)`