org.codehaus.jackson.map.ser
Class PropertyBuilder

java.lang.Object
  extended by org.codehaus.jackson.map.ser.PropertyBuilder

public class PropertyBuilder
extends Object

Helper class for BeanSerializerFactory that is used to construct BeanPropertyWriter instances. Can be sub-classed to change behavior.


Nested Class Summary
static class PropertyBuilder.EmptyArrayChecker
          Helper object used to check if given array object is null or empty
static class PropertyBuilder.EmptyCollectionChecker
          Helper object used to check if given Collection object is null or empty
static class PropertyBuilder.EmptyMapChecker
          Helper object used to check if given Map object is null or empty
static class PropertyBuilder.EmptyStringChecker
          Helper object used to check if given String object is null or empty
 
Field Summary
protected  AnnotationIntrospector _annotationIntrospector
           
protected  BasicBeanDescription _beanDesc
           
protected  SerializationConfig _config
           
protected  Object _defaultBean
          If a property has serialization inclusion value of JsonSerialize.Inclusion.ALWAYS, we need to know the default value of the bean, to know if property value equals default one.
protected  JsonSerialize.Inclusion _outputProps
           
 
Constructor Summary
PropertyBuilder(SerializationConfig config, BasicBeanDescription beanDesc)
           
 
Method Summary
protected  Object _throwWrapped(Exception e, String propName, Object defaultBean)
           
protected  BeanPropertyWriter buildWriter(String name, JavaType declaredType, JsonSerializer<Object> ser, TypeSerializer typeSer, TypeSerializer contentTypeSer, AnnotatedMember am, boolean defaultUseStaticTyping)
           
protected  JavaType findSerializationType(Annotated a, boolean useStaticTyping, JavaType declaredType)
          Method that will try to determine statically defined type of property being serialized, based on annotations (for overrides), and alternatively declared type (if static typing for serialization is enabled).
 Annotations getClassAnnotations()
           
protected  Object getContainerValueChecker(String propertyName, JavaType propertyType)
          Helper method called to see if we need a comparator Object to check if values of a container (Collection, array) property should be suppressed.
protected  Object getDefaultBean()
           
protected  Object getDefaultValue(String name, Method m, Field f)
           
protected  Object getEmptyValueChecker(String propertyName, JavaType propertyType)
          Helper method called to see if we need a comparator Object to check if values of specified type are consider empty.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_config

protected final SerializationConfig _config

_beanDesc

protected final BasicBeanDescription _beanDesc

_outputProps

protected final JsonSerialize.Inclusion _outputProps

_annotationIntrospector

protected final AnnotationIntrospector _annotationIntrospector

_defaultBean

protected Object _defaultBean
If a property has serialization inclusion value of JsonSerialize.Inclusion.ALWAYS, we need to know the default value of the bean, to know if property value equals default one.

Constructor Detail

PropertyBuilder

public PropertyBuilder(SerializationConfig config,
                       BasicBeanDescription beanDesc)
Method Detail

getClassAnnotations

public Annotations getClassAnnotations()

buildWriter

protected BeanPropertyWriter buildWriter(String name,
                                         JavaType declaredType,
                                         JsonSerializer<Object> ser,
                                         TypeSerializer typeSer,
                                         TypeSerializer contentTypeSer,
                                         AnnotatedMember am,
                                         boolean defaultUseStaticTyping)
Parameters:
contentTypeSer - Optional explicit type information serializer to use for contained values (only used for properties that are of container type)

findSerializationType

protected JavaType findSerializationType(Annotated a,
                                         boolean useStaticTyping,
                                         JavaType declaredType)
Method that will try to determine statically defined type of property being serialized, based on annotations (for overrides), and alternatively declared type (if static typing for serialization is enabled). If neither can be used (no annotations, dynamic typing), returns null.


getDefaultBean

protected Object getDefaultBean()

getDefaultValue

protected Object getDefaultValue(String name,
                                 Method m,
                                 Field f)

getContainerValueChecker

protected Object getContainerValueChecker(String propertyName,
                                          JavaType propertyType)
Helper method called to see if we need a comparator Object to check if values of a container (Collection, array) property should be suppressed. This is usually

Parameters:
propertyName - Name of property to handle
propertyType - Declared type of values of the property to handle
Returns:
Object whose equals() method is called to check if given value is "empty Collection" value to suppress; or null if no such check should be done (declared type not Collection or array)
Since:
1.9

getEmptyValueChecker

protected Object getEmptyValueChecker(String propertyName,
                                      JavaType propertyType)
Helper method called to see if we need a comparator Object to check if values of specified type are consider empty. If type has such concept, will build a comparator; otherwise return null, and in latter case, only null values are considered 'empty'.

Parameters:
propertyName - Name of property to handle
propertyType - Declared type of values of the property to handle
Returns:
Object whose equals() method is called to check if given value is "empty Collection" value to suppress; or null if no such check should be done (declared type not Collection or array)
Since:
1.9

_throwWrapped

protected Object _throwWrapped(Exception e,
                               String propName,
                               Object defaultBean)