public class POJOPropertiesCollector extends Object
Modifier and Type | Field and Description |
---|---|
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 Map<PropertyName,PropertyName> |
_fieldRenameMappings
A set of "field renamings" that have been discovered, indicating
intended renaming of other accesors: key is the implicit original
name and value intended name to use instead.
|
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 |
Modifier | Constructor and Description |
---|---|
protected |
POJOPropertiesCollector(MapperConfig<?> config,
boolean forSerialization,
JavaType type,
AnnotatedClass classDef,
String mutatorPrefix) |
protected final MapperConfig<?> _config
protected final boolean _forSerialization
protected final boolean _stdBeanNaming
protected final JavaType _type
protected final AnnotatedClass _classDef
protected final VisibilityChecker<?> _visibilityChecker
protected final AnnotationIntrospector _annotationIntrospector
protected final boolean _useAnnotations
protected final String _mutatorPrefix
protected boolean _collected
protected LinkedHashMap<String,POJOPropertyBuilder> _properties
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.
protected LinkedList<POJOPropertyBuilder> _creatorProperties
protected Map<PropertyName,PropertyName> _fieldRenameMappings
Note that these renamings are applied earlier than "regular" (explicit) renamings and affect implicit name: their effect may be changed by further renaming based on explicit indicators. The main use case is to effectively relink accessors based on fields discovered, and used to sort of correct otherwise missing linkage between fields and other accessors.
protected LinkedList<AnnotatedMember> _anyGetters
protected LinkedList<AnnotatedMethod> _anySetters
protected LinkedList<AnnotatedMember> _anySetterField
protected LinkedList<AnnotatedMember> _jsonValueAccessors
NOTE: before 2.9, was `AnnotatedMethod`; with 2.9 allows fields too
protected HashSet<String> _ignoredPropertyNames
protected LinkedHashMap<Object,AnnotatedMember> _injectables
protected POJOPropertiesCollector(MapperConfig<?> config, boolean forSerialization, JavaType type, AnnotatedClass classDef, String mutatorPrefix)
public MapperConfig<?> getConfig()
public JavaType getType()
public AnnotatedClass getClassDef()
public AnnotationIntrospector getAnnotationIntrospector()
public List<BeanPropertyDefinition> getProperties()
public Map<Object,AnnotatedMember> getInjectables()
public AnnotatedMember getJsonValueAccessor()
public AnnotatedMember getAnyGetter()
public AnnotatedMember getAnySetterField()
public AnnotatedMethod getAnySetterMethod()
public Set<String> getIgnoredPropertyNames()
public ObjectIdInfo getObjectIdInfo()
protected Map<String,POJOPropertyBuilder> getPropertyMap()
@Deprecated public AnnotatedMethod getJsonValueMethod()
@Deprecated public Class<?> findPOJOBuilderClass()
protected void collectAll()
protected void _addFields(Map<String,POJOPropertyBuilder> props)
protected void _addCreators(Map<String,POJOPropertyBuilder> props)
protected void _addCreatorParam(Map<String,POJOPropertyBuilder> props, AnnotatedParameter param)
protected void _addMethods(Map<String,POJOPropertyBuilder> props)
protected void _addGetterMethod(Map<String,POJOPropertyBuilder> props, AnnotatedMethod m, AnnotationIntrospector ai)
protected void _addSetterMethod(Map<String,POJOPropertyBuilder> props, AnnotatedMethod m, AnnotationIntrospector ai)
protected void _addInjectables(Map<String,POJOPropertyBuilder> props)
protected void _doAddInjectable(JacksonInject.Value injectable, AnnotatedMember m)
protected void _removeUnwantedProperties(Map<String,POJOPropertyBuilder> props)
protected void _removeUnwantedAccessor(Map<String,POJOPropertyBuilder> props)
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 POJOPropertyBuilder _property(Map<String,POJOPropertyBuilder> props, PropertyName name)
protected POJOPropertyBuilder _property(Map<String,POJOPropertyBuilder> props, String implName)
protected void _updateCreatorProperty(POJOPropertyBuilder prop, List<POJOPropertyBuilder> creatorProperties)
Copyright © 2008–2020 FasterXML. All rights reserved.