public class PropertyBuilder extends Object
BeanSerializerFactory
that is used to
construct BeanPropertyWriter
instances. Can be sub-classed
to change behavior.Modifier and Type | Field and Description |
---|---|
protected AnnotationIntrospector |
_annotationIntrospector |
protected BeanDescription |
_beanDesc |
protected SerializationConfig |
_config |
protected Object |
_defaultBean
If a property has serialization inclusion value of
JsonInclude.Include.NON_DEFAULT ,
we may need to know the default value of the bean, to know if property value
equals default one. |
protected JsonInclude.Value |
_defaultInclusion
Default inclusion mode for properties of the POJO for which
properties are collected; possibly overridden on
per-property basis.
|
Constructor and Description |
---|
PropertyBuilder(SerializationConfig config,
BeanDescription beanDesc) |
Modifier and Type | Method and Description |
---|---|
protected Object |
_throwWrapped(Exception e,
String propName,
Object defaultBean) |
protected BeanPropertyWriter |
buildWriter(SerializerProvider prov,
BeanPropertyDefinition propDef,
JavaType declaredType,
JsonSerializer<?> 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 |
getDefaultBean() |
protected Object |
getDefaultValue(JavaType type)
Accessor used to find out "default value" to use for comparing values to
serialize, to determine whether to exclude value from serialization with
inclusion type of
JsonInclude.Include.NON_DEFAULT . |
protected Object |
getPropertyDefaultValue(String name,
AnnotatedMember member,
JavaType type)
Accessor used to find out "default value" for given property, to use for
comparing values to serialize, to determine whether to exclude value from serialization with
inclusion type of
JsonInclude.Include.NON_EMPTY . |
protected final SerializationConfig _config
protected final BeanDescription _beanDesc
protected final JsonInclude.Value _defaultInclusion
protected final AnnotationIntrospector _annotationIntrospector
protected Object _defaultBean
JsonInclude.Include.NON_DEFAULT
,
we may need to know the default value of the bean, to know if property value
equals default one.
NOTE: only used if enclosing class defines NON_DEFAULT, but NOT if it is the global default OR per-property override.
public PropertyBuilder(SerializationConfig config, BeanDescription beanDesc)
public Annotations getClassAnnotations()
protected BeanPropertyWriter buildWriter(SerializerProvider prov, BeanPropertyDefinition propDef, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, TypeSerializer contentTypeSer, AnnotatedMember am, boolean defaultUseStaticTyping) throws JsonMappingException
contentTypeSer
- Optional explicit type information serializer
to use for contained values (only used for properties that are
of container type)JsonMappingException
protected JavaType findSerializationType(Annotated a, boolean useStaticTyping, JavaType declaredType) throws JsonMappingException
JsonMappingException
protected Object getDefaultBean()
protected Object getPropertyDefaultValue(String name, AnnotatedMember member, JavaType type)
JsonInclude.Include.NON_EMPTY
.
This method is called when we specifically want to know default value within context
of a POJO, when annotation is within containing class, and not for property or
defined as global baseline.
Note that returning of pseudo-type
protected Object getDefaultValue(JavaType type)
JsonInclude.Include.NON_DEFAULT
.
Default logic is such that for primitives and wrapper types for primitives, expected
defaults (0 for `int` and `java.lang.Integer`) are returned; for Strings, empty String,
and for structured (Maps, Collections, arrays) and reference types, criteria
JsonInclude.Include.NON_DEFAULT
is used.
Copyright © 2008–2017 FasterXML. All rights reserved.