public class PropertyBuilder
extends java.lang.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 java.lang.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 com.fasterxml.jackson.annotation.JsonInclude.Value |
_defaultInclusion
Default inclusion mode for properties of the POJO for which
properties are collected; possibly overridden on
per-property basis.
|
private static java.lang.Object |
NO_DEFAULT_MARKER |
Constructor and Description |
---|
PropertyBuilder(SerializationConfig config,
BeanDescription beanDesc) |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Object |
_throwWrapped(java.lang.Exception e,
java.lang.String propName,
java.lang.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 java.lang.Object |
getDefaultBean() |
protected java.lang.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 java.lang.Object |
getPropertyDefaultValue(java.lang.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 . |
private static final java.lang.Object NO_DEFAULT_MARKER
protected final SerializationConfig _config
protected final BeanDescription _beanDesc
protected final com.fasterxml.jackson.annotation.JsonInclude.Value _defaultInclusion
protected final AnnotationIntrospector _annotationIntrospector
protected java.lang.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 java.lang.Object getDefaultBean()
protected java.lang.Object getPropertyDefaultValue(java.lang.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 java.lang.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.
protected java.lang.Object _throwWrapped(java.lang.Exception e, java.lang.String propName, java.lang.Object defaultBean)