public class POJOPropertiesCollector
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected AnnotationIntrospector |
_annotationIntrospector |
protected java.util.LinkedList<AnnotatedMember> |
_anyGetters |
protected java.util.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 java.util.LinkedList<POJOPropertyBuilder> |
_creatorProperties |
protected boolean |
_forSerialization
True if introspection is done for serialization (giving
precedence for serialization annotations), or not (false, deserialization)
|
protected java.util.HashSet<java.lang.String> |
_ignoredPropertyNames
Lazily collected list of properties that can be implicitly
ignored during serialization; only updated when collecting
information for deserialization purposes
|
protected java.util.LinkedHashMap<java.lang.Object,AnnotatedMember> |
_injectables
Lazily collected list of members that were annotated to
indicate that they represent mutators for deserializer
value injection.
|
protected java.util.LinkedList<AnnotatedMethod> |
_jsonValueGetters
Method(s) marked with 'JsonValue' annotation
|
protected java.lang.String |
_mutatorPrefix
Prefix used by auto-detected mutators ("setters"): usually "set",
but differs for builder objects ("with" by default).
|
protected java.util.LinkedHashMap<java.lang.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 VisibilityChecker<?> |
_visibilityChecker |
Modifier | Constructor and Description |
---|---|
protected |
POJOPropertiesCollector(MapperConfig<?> config,
boolean forSerialization,
JavaType type,
AnnotatedClass classDef,
java.lang.String mutatorPrefix) |
Modifier and Type | Method and Description |
---|---|
protected void |
_addCreatorParam(java.util.Map<java.lang.String,POJOPropertyBuilder> props,
AnnotatedParameter param) |
protected void |
_addCreators(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
Method for collecting basic information on constructor(s) found
|
protected void |
_addFields(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
Method for collecting basic information on all fields found
|
protected void |
_addGetterMethod(java.util.Map<java.lang.String,POJOPropertyBuilder> props,
AnnotatedMethod m,
AnnotationIntrospector ai) |
protected void |
_addInjectables(java.util.Map<java.lang.String,POJOPropertyBuilder> props) |
protected void |
_addMethods(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
Method for collecting basic information on all fields found
|
protected void |
_addSetterMethod(java.util.Map<java.lang.String,POJOPropertyBuilder> props,
AnnotatedMethod m,
AnnotationIntrospector ai) |
private void |
_collectIgnorals(java.lang.String name)
Helper method called to add explicitly ignored properties to a list
of known ignored properties; this helps in proper reporting of
errors.
|
protected void |
_doAddInjectable(java.lang.Object id,
AnnotatedMember m) |
private PropertyNamingStrategy |
_findNamingStrategy() |
protected POJOPropertyBuilder |
_property(java.util.Map<java.lang.String,POJOPropertyBuilder> props,
PropertyName name) |
protected POJOPropertyBuilder |
_property(java.util.Map<java.lang.String,POJOPropertyBuilder> props,
java.lang.String implName) |
private PropertyName |
_propNameFromSimple(java.lang.String simpleName) |
protected void |
_removeUnwantedAccessor(java.util.Map<java.lang.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(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
Method called to get rid of candidate properties that are marked
as ignored.
|
protected void |
_renameProperties(java.util.Map<java.lang.String,POJOPropertyBuilder> props) |
protected void |
_renameUsing(java.util.Map<java.lang.String,POJOPropertyBuilder> propMap,
PropertyNamingStrategy naming) |
protected void |
_renameWithWrappers(java.util.Map<java.lang.String,POJOPropertyBuilder> props) |
protected void |
_sortProperties(java.util.Map<java.lang.String,POJOPropertyBuilder> props) |
protected void |
_updateCreatorProperty(POJOPropertyBuilder prop,
java.util.List<POJOPropertyBuilder> creatorProperties) |
POJOPropertiesCollector |
collect()
Deprecated.
Since 2.6; no need to call
|
protected void |
collectAll()
Internal method that will collect actual property information.
|
java.lang.Class<?> |
findPOJOBuilderClass()
Method for finding Class to use as POJO builder, if any.
|
AnnotationIntrospector |
getAnnotationIntrospector() |
AnnotatedMember |
getAnyGetter() |
AnnotatedMethod |
getAnySetterMethod() |
AnnotatedClass |
getClassDef() |
MapperConfig<?> |
getConfig() |
java.util.Set<java.lang.String> |
getIgnoredPropertyNames()
Accessor for set of properties that are explicitly marked to be ignored
via per-property markers (but NOT class annotations).
|
java.util.Map<java.lang.Object,AnnotatedMember> |
getInjectables() |
AnnotatedMethod |
getJsonValueMethod() |
ObjectIdInfo |
getObjectIdInfo()
Accessor to find out whether type specified requires inclusion
of Object Identifier.
|
java.util.List<BeanPropertyDefinition> |
getProperties() |
protected java.util.Map<java.lang.String,POJOPropertyBuilder> |
getPropertyMap() |
JavaType |
getType() |
protected void |
reportProblem(java.lang.String msg) |
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 java.lang.String _mutatorPrefix
protected boolean _collected
protected java.util.LinkedHashMap<java.lang.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 java.util.LinkedList<POJOPropertyBuilder> _creatorProperties
protected java.util.LinkedList<AnnotatedMember> _anyGetters
protected java.util.LinkedList<AnnotatedMethod> _anySetters
protected java.util.LinkedList<AnnotatedMethod> _jsonValueGetters
protected java.util.HashSet<java.lang.String> _ignoredPropertyNames
protected java.util.LinkedHashMap<java.lang.Object,AnnotatedMember> _injectables
protected POJOPropertiesCollector(MapperConfig<?> config, boolean forSerialization, JavaType type, AnnotatedClass classDef, java.lang.String mutatorPrefix)
public MapperConfig<?> getConfig()
public JavaType getType()
public AnnotatedClass getClassDef()
public AnnotationIntrospector getAnnotationIntrospector()
public java.util.List<BeanPropertyDefinition> getProperties()
public java.util.Map<java.lang.Object,AnnotatedMember> getInjectables()
public AnnotatedMethod getJsonValueMethod()
public AnnotatedMember getAnyGetter()
public AnnotatedMethod getAnySetterMethod()
public java.util.Set<java.lang.String> getIgnoredPropertyNames()
public ObjectIdInfo getObjectIdInfo()
public java.lang.Class<?> findPOJOBuilderClass()
protected java.util.Map<java.lang.String,POJOPropertyBuilder> getPropertyMap()
@Deprecated public POJOPropertiesCollector collect()
Since 2.6 has become a no-op and actual collection is done more lazily at point where properties are actually needed.
protected void collectAll()
protected void _addFields(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
protected void _addCreators(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
protected void _addCreatorParam(java.util.Map<java.lang.String,POJOPropertyBuilder> props, AnnotatedParameter param)
protected void _addMethods(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
protected void _addGetterMethod(java.util.Map<java.lang.String,POJOPropertyBuilder> props, AnnotatedMethod m, AnnotationIntrospector ai)
protected void _addSetterMethod(java.util.Map<java.lang.String,POJOPropertyBuilder> props, AnnotatedMethod m, AnnotationIntrospector ai)
protected void _addInjectables(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
protected void _doAddInjectable(java.lang.Object id, AnnotatedMember m)
private PropertyName _propNameFromSimple(java.lang.String simpleName)
protected void _removeUnwantedProperties(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
protected void _removeUnwantedAccessor(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
private void _collectIgnorals(java.lang.String name)
protected void _renameProperties(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
protected void _renameUsing(java.util.Map<java.lang.String,POJOPropertyBuilder> propMap, PropertyNamingStrategy naming)
protected void _renameWithWrappers(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
protected void _sortProperties(java.util.Map<java.lang.String,POJOPropertyBuilder> props)
protected void reportProblem(java.lang.String msg)
protected POJOPropertyBuilder _property(java.util.Map<java.lang.String,POJOPropertyBuilder> props, PropertyName name)
protected POJOPropertyBuilder _property(java.util.Map<java.lang.String,POJOPropertyBuilder> props, java.lang.String implName)
private PropertyNamingStrategy _findNamingStrategy()
protected void _updateCreatorProperty(POJOPropertyBuilder prop, java.util.List<POJOPropertyBuilder> creatorProperties)