Class BeanSerializerBuilder
- java.lang.Object
-
- com.fasterxml.jackson.databind.ser.BeanSerializerBuilder
-
public class BeanSerializerBuilder extends Object
Builder class used for aggregating deserialization information about a POJO, in order to build aJsonSerializerfor serializing intances. Main reason for using separate builder class is that this makes it easier to make actual serializer class fully immutable.
-
-
Field Summary
Fields Modifier and Type Field Description protected AnyGetterWriter_anyGetterWriter used for "any getter" properties, if any.protected BeanDescription_beanDescprotected SerializationConfig_configprotected BeanPropertyWriter[]_filteredPropertiesOptional array of filtered property writers; if null, no view-based filtering is performed.protected Object_filterIdId of the property filter to use for POJO, if any.protected ObjectIdWriter_objectIdWriterObject responsible for serializing Object Ids for the handled type, if any.protected List<BeanPropertyWriter>_propertiesBean properties, in order of serializationprotected AnnotatedMember_typeIdProperty that is used for type id (and not serialized as regular property)
-
Constructor Summary
Constructors Modifier Constructor Description BeanSerializerBuilder(BeanDescription beanDesc)protectedBeanSerializerBuilder(BeanSerializerBuilder src)Copy-constructor that may be used for sub-classing
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JsonSerializer<?>build()Method called to createBeanSerializerinstance with all accumulated information.BeanSerializercreateDummy()Factory method for constructing an "empty" serializer; one that outputs no properties (but handles JSON objects properly, including type information)AnyGetterWritergetAnyGetter()BeanDescriptiongetBeanDescription()AnnotatedClassgetClassInfo()BeanPropertyWriter[]getFilteredProperties()ObjectgetFilterId()ObjectIdWritergetObjectIdWriter()List<BeanPropertyWriter>getProperties()AnnotatedMembergetTypeId()booleanhasProperties()voidsetAnyGetter(AnyGetterWriter anyGetter)protected voidsetConfig(SerializationConfig config)Initialization method called right after construction, to specify configuration to use.voidsetFilteredProperties(BeanPropertyWriter[] properties)voidsetFilterId(Object filterId)voidsetObjectIdWriter(ObjectIdWriter w)voidsetProperties(List<BeanPropertyWriter> properties)voidsetTypeId(AnnotatedMember idProp)
-
-
-
Field Detail
-
_beanDesc
protected final BeanDescription _beanDesc
-
_config
protected SerializationConfig _config
-
_properties
protected List<BeanPropertyWriter> _properties
Bean properties, in order of serialization
-
_filteredProperties
protected BeanPropertyWriter[] _filteredProperties
Optional array of filtered property writers; if null, no view-based filtering is performed.
-
_anyGetter
protected AnyGetterWriter _anyGetter
Writer used for "any getter" properties, if any.
-
_filterId
protected Object _filterId
Id of the property filter to use for POJO, if any.
-
_typeId
protected AnnotatedMember _typeId
Property that is used for type id (and not serialized as regular property)
-
_objectIdWriter
protected ObjectIdWriter _objectIdWriter
Object responsible for serializing Object Ids for the handled type, if any.
-
-
Constructor Detail
-
BeanSerializerBuilder
public BeanSerializerBuilder(BeanDescription beanDesc)
-
BeanSerializerBuilder
protected BeanSerializerBuilder(BeanSerializerBuilder src)
Copy-constructor that may be used for sub-classing
-
-
Method Detail
-
setConfig
protected void setConfig(SerializationConfig config)
Initialization method called right after construction, to specify configuration to use.Note: ideally should be passed in constructor, but for backwards compatibility, needed to add a setter instead
- Since:
- 2.1
-
setProperties
public void setProperties(List<BeanPropertyWriter> properties)
-
setFilteredProperties
public void setFilteredProperties(BeanPropertyWriter[] properties)
- Parameters:
properties- Number and order of properties here MUST match that of "regular" properties set earlier usingsetProperties(List); if not, anIllegalArgumentExceptionwill be thrown
-
setAnyGetter
public void setAnyGetter(AnyGetterWriter anyGetter)
-
setFilterId
public void setFilterId(Object filterId)
-
setTypeId
public void setTypeId(AnnotatedMember idProp)
-
setObjectIdWriter
public void setObjectIdWriter(ObjectIdWriter w)
-
getClassInfo
public AnnotatedClass getClassInfo()
-
getBeanDescription
public BeanDescription getBeanDescription()
-
getProperties
public List<BeanPropertyWriter> getProperties()
-
hasProperties
public boolean hasProperties()
-
getFilteredProperties
public BeanPropertyWriter[] getFilteredProperties()
-
getAnyGetter
public AnyGetterWriter getAnyGetter()
-
getFilterId
public Object getFilterId()
-
getTypeId
public AnnotatedMember getTypeId()
-
getObjectIdWriter
public ObjectIdWriter getObjectIdWriter()
-
build
public JsonSerializer<?> build()
Method called to createBeanSerializerinstance with all accumulated information. Will construct a serializer if we have enough information, or return null if not.
-
createDummy
public BeanSerializer createDummy()
Factory method for constructing an "empty" serializer; one that outputs no properties (but handles JSON objects properly, including type information)
-
-