com.fasterxml.jackson.databind.introspect

## Class POJOPropertiesCollector

- java.lang.Object
- - com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector

    public class POJOPropertiesCollector
    extends Object

Helper class used for aggregating information about all possible properties of a POJO.

### Field Summary

Fields
`protected AnnotationIntrospector` `_annotationIntrospector`
`protected LinkedList<AnnotatedMember>` `_anyGetters`
`protected LinkedList<AnnotatedMember>` `_anySetterField`
`protected LinkedList<AnnotatedMethod>` `_anySetters`
`protected AnnotatedClass` `_classDef` Low-level introspected class information (methods, fields etc)
`protected boolean` `_collected` State flag we keep to indicate whether actual property information has been collected or not.
`protected MapperConfig<?>` `_config` Configuration settings
`protected LinkedList<POJOPropertyBuilder>` `_creatorProperties`
`protected boolean` `_forSerialization` True if introspection is done for serialization (giving precedence for serialization annotations), or not (false, deserialization)
`protected HashSet<String>` `_ignoredPropertyNames` Lazily collected list of properties that can be implicitly ignored during serialization; only updated when collecting information for deserialization purposes
`protected LinkedHashMap<Object,AnnotatedMember>` `_injectables` Lazily collected list of members that were annotated to indicate that they represent mutators for deserializer value injection.
`protected LinkedList<AnnotatedMember>` `_jsonValueAccessors` Method(s) marked with 'JsonValue' annotation
`protected String` `_mutatorPrefix` Prefix used by auto-detected mutators ("setters"): usually "set", but differs for builder objects ("with" by default).
`protected LinkedHashMap<String,POJOPropertyBuilder>` `_properties` Set of logical property information collected so far.
`protected boolean` `_stdBeanNaming`
`protected JavaType` `_type` Type of POJO for which properties are being collected.
`protected boolean` `_useAnnotations`
`protected VisibilityChecker<?>` `_visibilityChecker`

### Constructor Summary

Constructors
`protected` `POJOPropertiesCollector(MapperConfig<?> config, boolean forSerialization, JavaType type, AnnotatedClass classDef, String mutatorPrefix)`

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`protected void` `_addCreatorParam(Map<String,POJOPropertyBuilder> props, AnnotatedParameter param)`
`protected void` `_addCreators(Map<String,POJOPropertyBuilder> props)` Method for collecting basic information on constructor(s) found
`protected void` `_addFields(Map<String,POJOPropertyBuilder> props)` Method for collecting basic information on all fields found
`protected void` `_addGetterMethod(Map<String,POJOPropertyBuilder> props, AnnotatedMethod m, AnnotationIntrospector ai)`
`protected void` `_addInjectables(Map<String,POJOPropertyBuilder> props)`
`protected void` `_addMethods(Map<String,POJOPropertyBuilder> props)` Method for collecting basic information on all fields found
`protected void` `_addSetterMethod(Map<String,POJOPropertyBuilder> props, AnnotatedMethod m, AnnotationIntrospector ai)`
`protected void` `_doAddInjectable(JacksonInject.Value injectable, AnnotatedMember m)`
`protected POJOPropertyBuilder` `_property(Map<String,POJOPropertyBuilder> props, PropertyName name)`
`protected POJOPropertyBuilder` `_property(Map<String,POJOPropertyBuilder> props, String implName)`
`protected void` `_removeUnwantedAccessor(Map<String,POJOPropertyBuilder> props)` Method called to further get rid of unwanted individual accessors, based on read/write settings and rules for "pulling in" accessors (or not).
`protected void` `_removeUnwantedProperties(Map<String,POJOPropertyBuilder> props)` Method called to get rid of candidate properties that are marked as ignored.
`protected void` `_renameProperties(Map<String,POJOPropertyBuilder> props)`
`protected void` `_renameUsing(Map<String,POJOPropertyBuilder> propMap, PropertyNamingStrategy naming)`
`protected void` `_renameWithWrappers(Map<String,POJOPropertyBuilder> props)`
`protected void` `_sortProperties(Map<String,POJOPropertyBuilder> props)`
`protected void` `_updateCreatorProperty(POJOPropertyBuilder prop, List<POJOPropertyBuilder> creatorProperties)`
`protected void` `collectAll()` Internal method that will collect actual property information.
`Class<?>` `findPOJOBuilderClass()` Method for finding Class to use as POJO builder, if any.
`AnnotationIntrospector` `getAnnotationIntrospector()`
`AnnotatedMember` `getAnyGetter()`
`AnnotatedMember` `getAnySetterField()`
`AnnotatedMethod` `getAnySetterMethod()`
`AnnotatedClass` `getClassDef()`
`MapperConfig<?>` `getConfig()`
`Set<String>` `getIgnoredPropertyNames()` Accessor for set of properties that are explicitly marked to be ignored via per-property markers (but NOT class annotations).
`Map<Object,AnnotatedMember>` `getInjectables()`
`AnnotatedMember` `getJsonValueAccessor()`
`AnnotatedMethod` `getJsonValueMethod()` Deprecated.
`ObjectIdInfo` `getObjectIdInfo()` Accessor to find out whether type specified requires inclusion of Object Identifier.
`List<BeanPropertyDefinition>` `getProperties()`
`protected Map<String,POJOPropertyBuilder>` `getPropertyMap()`
`JavaType` `getType()`
`protected void` `reportProblem(String msg, Object... args)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### _config

    protected final MapperConfig<?> _config

Configuration settings

#### _forSerialization

    protected final boolean _forSerialization

True if introspection is done for serialization (giving precedence for serialization annotations), or not (false, deserialization)

#### _stdBeanNaming

    protected final boolean _stdBeanNaming

Since:
  2.5

#### _type

    protected final JavaType _type

Type of POJO for which properties are being collected.

#### _classDef

    protected final AnnotatedClass _classDef

Low-level introspected class information (methods, fields etc)

#### _visibilityChecker

    protected final VisibilityChecker<?> _visibilityChecker

#### _annotationIntrospector

    protected final AnnotationIntrospector _annotationIntrospector

#### _useAnnotations

    protected final boolean _useAnnotations

Since:
  2.9

#### _mutatorPrefix

    protected final String _mutatorPrefix

Prefix used by auto-detected mutators ("setters"): usually "set", but differs for builder objects ("with" by default).

#### _collected

    protected boolean _collected

State flag we keep to indicate whether actual property information has been collected or not.

#### _properties

    protected LinkedHashMap<String,POJOPropertyBuilder> _properties

Set of logical property information collected so far.

Since 2.6, this has been constructed (more) lazily, to defer throwing of exceptions for potential conflicts in cases where this may not be an actual problem.

#### _creatorProperties

    protected LinkedList<POJOPropertyBuilder> _creatorProperties

#### _anyGetters

    protected LinkedList<AnnotatedMember> _anyGetters

#### _anySetters

    protected LinkedList<AnnotatedMethod> _anySetters

#### _anySetterField

    protected LinkedList<AnnotatedMember> _anySetterField

#### _jsonValueAccessors

    protected LinkedList<AnnotatedMember> _jsonValueAccessors

Method(s) marked with 'JsonValue' annotation

NOTE: before 2.9, was `AnnotatedMethod`; with 2.9 allows fields too

#### _ignoredPropertyNames

    protected HashSet<String> _ignoredPropertyNames

Lazily collected list of properties that can be implicitly ignored during serialization; only updated when collecting information for deserialization purposes

#### _injectables

    protected LinkedHashMap<Object,AnnotatedMember> _injectables

Lazily collected list of members that were annotated to indicate that they represent mutators for deserializer value injection.

### Constructor Detail

#### POJOPropertiesCollector

    protected POJOPropertiesCollector(MapperConfig<?> config,
                                      boolean forSerialization,
                                      JavaType type,
                                      AnnotatedClass classDef,
                                      String mutatorPrefix)

### Method Detail

#### getConfig

    public MapperConfig<?> getConfig()

#### getType

    public JavaType getType()

#### getClassDef

    public AnnotatedClass getClassDef()

#### getAnnotationIntrospector

    public AnnotationIntrospector getAnnotationIntrospector()

#### getProperties

    public List<BeanPropertyDefinition> getProperties()

#### getInjectables

    public Map<Object,AnnotatedMember> getInjectables()

#### getJsonValueMethod

    @Deprecated
    public AnnotatedMethod getJsonValueMethod()

Deprecated.

#### getJsonValueAccessor

    public AnnotatedMember getJsonValueAccessor()

Since:
  2.9

#### getAnyGetter

    public AnnotatedMember getAnyGetter()

#### getAnySetterField

    public AnnotatedMember getAnySetterField()

#### getAnySetterMethod

    public AnnotatedMethod getAnySetterMethod()

#### getIgnoredPropertyNames

    public Set<String> getIgnoredPropertyNames()

Accessor for set of properties that are explicitly marked to be ignored via per-property markers (but NOT class annotations).

#### getObjectIdInfo

    public ObjectIdInfo getObjectIdInfo()

Accessor to find out whether type specified requires inclusion of Object Identifier.

#### findPOJOBuilderClass

    public Class<?> findPOJOBuilderClass()

Method for finding Class to use as POJO builder, if any.

#### getPropertyMap

    protected Map<String,POJOPropertyBuilder> getPropertyMap()

#### collectAll

    protected void collectAll()

Internal method that will collect actual property information.

Since:
  2.6

#### _addFields

    protected void _addFields(Map<String,POJOPropertyBuilder> props)

Method for collecting basic information on all fields found

#### _addCreators

    protected void _addCreators(Map<String,POJOPropertyBuilder> props)

Method for collecting basic information on constructor(s) found

#### _addCreatorParam

    protected void _addCreatorParam(Map<String,POJOPropertyBuilder> props,
                                    AnnotatedParameter param)

Since:
  2.4

#### _addMethods

    protected void _addMethods(Map<String,POJOPropertyBuilder> props)

Method for collecting basic information on all fields found

#### _addGetterMethod

    protected void _addGetterMethod(Map<String,POJOPropertyBuilder> props,
                                    AnnotatedMethod m,
                                    AnnotationIntrospector ai)

#### _addSetterMethod

    protected void _addSetterMethod(Map<String,POJOPropertyBuilder> props,
                                    AnnotatedMethod m,
                                    AnnotationIntrospector ai)

#### _addInjectables

    protected void _addInjectables(Map<String,POJOPropertyBuilder> props)

#### _doAddInjectable

    protected void _doAddInjectable(JacksonInject.Value injectable,
                                    AnnotatedMember m)

#### _removeUnwantedProperties

    protected void _removeUnwantedProperties(Map<String,POJOPropertyBuilder> props)

Method called to get rid of candidate properties that are marked as ignored.

#### _removeUnwantedAccessor

    protected void _removeUnwantedAccessor(Map<String,POJOPropertyBuilder> props)

Method called to further get rid of unwanted individual accessors, based on read/write settings and rules for "pulling in" accessors (or not).

#### _renameProperties

    protected void _renameProperties(Map<String,POJOPropertyBuilder> props)

#### _renameUsing

    protected void _renameUsing(Map<String,POJOPropertyBuilder> propMap,
                                PropertyNamingStrategy naming)

#### _renameWithWrappers

    protected void _renameWithWrappers(Map<String,POJOPropertyBuilder> props)

#### _sortProperties

    protected void _sortProperties(Map<String,POJOPropertyBuilder> props)

#### reportProblem

    protected void reportProblem(String msg,
                                 Object... args)

#### _property

    protected POJOPropertyBuilder _property(Map<String,POJOPropertyBuilder> props,
                                            PropertyName name)

#### _property

    protected POJOPropertyBuilder _property(Map<String,POJOPropertyBuilder> props,
                                            String implName)

#### _updateCreatorProperty

    protected void _updateCreatorProperty(POJOPropertyBuilder prop,
                                          List<POJOPropertyBuilder> creatorProperties)