org.codehaus.jackson.map.introspect
Class POJOPropertiesCollector

java.lang.Object
  extended by org.codehaus.jackson.map.introspect.POJOPropertiesCollector

public class POJOPropertiesCollector
extends Object

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

Since:
1.9

Field Summary
protected  AnnotationIntrospector _annotationIntrospector
           
protected  LinkedList<AnnotatedMethod> _anyGetters
           
protected  LinkedList<AnnotatedMethod> _anySetters
           
protected  AnnotatedClass _classDef
          Low-level introspected class information (methods, fields etc)
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<AnnotatedMethod> _jsonValueGetters
          Method(s) marked with 'JsonValue' annotation
protected  LinkedHashMap<String,POJOPropertyBuilder> _properties
          Set of logical property information collected so far
protected  JavaType _type
          Type of POJO for which properties are being collected.
protected  VisibilityChecker<?> _visibilityChecker
           
 
Constructor Summary
protected POJOPropertiesCollector(MapperConfig<?> config, boolean forSerialization, JavaType type, AnnotatedClass classDef)
           
 
Method Summary
protected  void _addCreators()
          Method for collecting basic information on constructor(s) found
protected  void _addFields()
          Method for collecting basic information on all fields found
protected  void _addInjectables()
           
protected  void _addMethods()
          Method for collecting basic information on all fields found
protected  void _doAddInjectable(Object id, AnnotatedMember m)
           
protected  POJOPropertyBuilder _property(String implName)
           
protected  void _removeUnwantedProperties()
          Method called to get rid of candidate properties that are marked as ignored, or that are not visible.
protected  void _renameProperties()
           
protected  void _renameUsing(PropertyNamingStrategy naming)
           
protected  void _sortProperties()
           
 POJOPropertiesCollector collect()
          Method that orchestrates collection activities, and needs to be called after creating the instance.
 AnnotationIntrospector getAnnotationIntrospector()
           
 AnnotatedMethod getAnyGetterMethod()
           
 AnnotatedMethod getAnySetterMethod()
           
 AnnotatedClass getClassDef()
           
 MapperConfig<?> getConfig()
           
 Set<String> getIgnoredPropertyNames()
           
 Map<Object,AnnotatedMember> getInjectables()
           
 AnnotatedMethod getJsonValueMethod()
           
 List<BeanPropertyDefinition> getProperties()
           
protected  Map<String,POJOPropertyBuilder> getPropertyMap()
           
 JavaType getType()
           
protected  void reportProblem(String msg)
           
 
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)


_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

_properties

protected final LinkedHashMap<String,POJOPropertyBuilder> _properties
Set of logical property information collected so far


_creatorProperties

protected LinkedList<POJOPropertyBuilder> _creatorProperties

_anyGetters

protected LinkedList<AnnotatedMethod> _anyGetters

_anySetters

protected LinkedList<AnnotatedMethod> _anySetters

_jsonValueGetters

protected LinkedList<AnnotatedMethod> _jsonValueGetters
Method(s) marked with 'JsonValue' annotation


_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)
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

public AnnotatedMethod getJsonValueMethod()

getAnyGetterMethod

public AnnotatedMethod getAnyGetterMethod()

getAnySetterMethod

public AnnotatedMethod getAnySetterMethod()

getIgnoredPropertyNames

public Set<String> getIgnoredPropertyNames()

getPropertyMap

protected Map<String,POJOPropertyBuilder> getPropertyMap()

collect

public POJOPropertiesCollector collect()
Method that orchestrates collection activities, and needs to be called after creating the instance.


_sortProperties

protected void _sortProperties()

_addFields

protected void _addFields()
Method for collecting basic information on all fields found


_addCreators

protected void _addCreators()
Method for collecting basic information on constructor(s) found


_addMethods

protected void _addMethods()
Method for collecting basic information on all fields found


_addInjectables

protected void _addInjectables()

_doAddInjectable

protected void _doAddInjectable(Object id,
                                AnnotatedMember m)

_removeUnwantedProperties

protected void _removeUnwantedProperties()
Method called to get rid of candidate properties that are marked as ignored, or that are not visible.


_renameProperties

protected void _renameProperties()

_renameUsing

protected void _renameUsing(PropertyNamingStrategy naming)

reportProblem

protected void reportProblem(String msg)

_property

protected POJOPropertyBuilder _property(String implName)