Top Description Fields Constructors Methods
com.fasterxml.jackson.dataformat.xml.ser

public abstract Class XmlBeanSerializerBase

extends BeanSerializerBase
Class Inheritance
Known Direct Subclasses
com.fasterxml.jackson.dataformat.xml.ser.UnwrappingXmlBeanSerializer, com.fasterxml.jackson.dataformat.xml.ser.XmlBeanSerializer
Annotations
@SuppressWarnings:serial
Imports
java.io.IOException, java.util.BitSet, .Set, javax.xml.namespace.QName, com.fasterxml.jackson.annotation.JsonTypeInfo, com.fasterxml.jackson.core.*, com.fasterxml.jackson.databind.JsonMappingException, .SerializerProvider, com.fasterxml.jackson.databind.jsontype.TypeSerializer, com.fasterxml.jackson.databind.ser.BeanPropertyWriter, .PropertyFilter, com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter, .WritableObjectId, com.fasterxml.jackson.databind.ser.std.BeanSerializerBase, com.fasterxml.jackson.databind.util.NameTransformer, com.fasterxml.jackson.dataformat.xml.util.XmlInfo

References Deprecated

BeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

Specific sub-class of BeanSerializerBase needed to take care of some xml-specific aspects, such as distinction between attributes and elements.

Field Summary

Modifier and TypeField and Description
protected final int
_attributeCount

Number of attributes to write; these will have been ordered to be the first properties to write.

protected final BitSet
_cdata

Optional set of indexes of properties that should be serialized as CDATA, instead of regular XML text segment.

protected final int
_textPropertyIndex

Index of "text value" property we have, if any; can have at most one such property.

protected final QName[]
_xmlNames

Array that contains namespace URIs associated with properties, if any; null if no namespace definitions have been assigned

public static final String
KEY_XML_INFO

Marker used for storing associated internal data with BeanPropertyWriter instances; to mark instances that are to be written out as attributes.

Inherited from com.fasterxml.jackson.databind.ser.std.BeanSerializerBase:
_anyGetterWriter_beanType_filteredProps_objectIdWriter_propertyFilterId_props_serializationShape_typeIdNAME_FOR_OBJECT_REFNO_PROPS

Constructor Summary

AccessConstructor and Description
public
XmlBeanSerializerBase(BeanSerializerBase src)
References Deprecated BeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

protected
XmlBeanSerializerBase(XmlBeanSerializerBase src, ObjectIdWriter objectIdWriter)
References Deprecated XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

protected
XmlBeanSerializerBase(XmlBeanSerializerBase src, ObjectIdWriter objectIdWriter, Object filterId)
References Deprecated XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

protected
XmlBeanSerializerBase(XmlBeanSerializerBase src, Set<String> toIgnore, Set<String> toInclude)
References Deprecated XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

public
XmlBeanSerializerBase(XmlBeanSerializerBase src, NameTransformer transformer)
References Deprecated XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

protected
XmlBeanSerializerBase(XmlBeanSerializerBase src, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties)
References Deprecated XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

Method Summary

Modifier and TypeMethod and Description
protected static boolean
protected static boolean
protected static int
_orderAttributesFirst(BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties)

Method for re-sorting lists of bean properties such that attributes are strictly written before elements.

protected void
protected void
serializeFields(Object bean, JsonGenerator gen0, SerializerProvider provider)

Overrides com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields.

Main serialization method needs to be overridden to allow XML-specific extra handling, such as indication of whether to write attributes or elements.

protected void
serializeFieldsFiltered(Object bean, JsonGenerator gen0, SerializerProvider provider)

Overrides com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFieldsFiltered.

Alternative serialization method that gets called when there is a PropertyFilter that needs to be called to determine which properties are to be serialized (and possibly how)

public void
serializeWithType(Object
Value to serialize; can not be null.
bean
,
JsonGenerator
Generator used to output resulting Json content
gen
,
SerializerProvider
Provider that can be used to get serializers for serializing Objects value contains, if any.
provider
,
TypeSerializer
Type serializer to use for including type information
typeSer
)

Overrides com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeWithType.

Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information.

Inherited from com.fasterxml.jackson.databind.ser.std.BeanSerializerBase:
_customTypeId_serializeWithObjectId_serializeWithObjectId_typeIdDefacceptJsonFormatVisitorasArraySerializercreateContextualfindConvertingSerializergetSchemapropertiesresolveserializeusesObjectIdwithByNameInclusionwithFilterIdwithIgnoralswithIgnoralswithObjectIdWriterwithProperties

Field Detail

_attributeCountback to summary
protected final int _attributeCount

Number of attributes to write; these will have been ordered to be the first properties to write.

_cdataback to summary
protected final BitSet _cdata

Optional set of indexes of properties that should be serialized as CDATA, instead of regular XML text segment. Left as null in cases where none of element values are to be written in such a way.

_textPropertyIndexback to summary
protected final int _textPropertyIndex

Index of "text value" property we have, if any; can have at most one such property.

_xmlNamesback to summary
protected final QName[] _xmlNames

Array that contains namespace URIs associated with properties, if any; null if no namespace definitions have been assigned

KEY_XML_INFOback to summary
public static final String KEY_XML_INFO

Marker used for storing associated internal data with BeanPropertyWriter instances; to mark instances that are to be written out as attributes. Created as separate non-interned String to ensure there are no collisions.

Constructor Detail

XmlBeanSerializerBaseback to summary
public XmlBeanSerializerBase(BeanSerializerBase src)

References Deprecated

BeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

XmlBeanSerializerBaseback to summary
protected XmlBeanSerializerBase(XmlBeanSerializerBase src, ObjectIdWriter objectIdWriter)

References Deprecated

XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

XmlBeanSerializerBaseback to summary
protected XmlBeanSerializerBase(XmlBeanSerializerBase src, ObjectIdWriter objectIdWriter, Object filterId)

References Deprecated

XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

XmlBeanSerializerBaseback to summary
protected XmlBeanSerializerBase(XmlBeanSerializerBase src, Set<String> toIgnore, Set<String> toInclude)

References Deprecated

XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

XmlBeanSerializerBaseback to summary
public XmlBeanSerializerBase(XmlBeanSerializerBase src, NameTransformer transformer)

References Deprecated

XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

XmlBeanSerializerBaseback to summary
protected XmlBeanSerializerBase(XmlBeanSerializerBase src, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties)

References Deprecated

XmlBeanSerializerBase is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

Method Detail

_isAttributeback to summary
protected static boolean _isAttribute(BeanPropertyWriter bpw)
_isCDataback to summary
protected static boolean _isCData(BeanPropertyWriter bpw)
_orderAttributesFirstback to summary
protected static int _orderAttributesFirst(BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties)

Method for re-sorting lists of bean properties such that attributes are strictly written before elements.

_serializeObjectIdback to summary
protected void _serializeObjectId(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer, WritableObjectId objectId) throws IOException

Overrides com.fasterxml.jackson.databind.ser.std.BeanSerializerBase._serializeObjectId.

Annotations
@Override
serializeFieldsback to summary
protected void serializeFields(Object bean, JsonGenerator gen0, SerializerProvider provider) throws IOException

Overrides com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields.

Main serialization method needs to be overridden to allow XML-specific extra handling, such as indication of whether to write attributes or elements.

Annotations
@Override
serializeFieldsFilteredback to summary
protected void serializeFieldsFiltered(Object bean, JsonGenerator gen0, SerializerProvider provider) throws IOException

Overrides com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFieldsFiltered.

Doc from com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFieldsFiltered.

Alternative serialization method that gets called when there is a PropertyFilter that needs to be called to determine which properties are to be serialized (and possibly how)

Annotations
@Override
serializeWithTypeback to summary
public void serializeWithType(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer) throws IOException

Overrides com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeWithType.

Doc from com.fasterxml.jackson.databind.JsonSerializer.serializeWithType.

Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information.

Default implementation will throw UnsupportedOperationException to indicate that proper type handling needs to be implemented.

For simple datatypes written as a single scalar value (JSON String, Number, Boolean), implementation would look like:

  // note: method to call depends on whether this type is serialized as JSON scalar, object or Array!
  typeSer.writeTypePrefixForScalar(value, gen);
  serialize(value, gen, provider);
  typeSer.writeTypeSuffixForScalar(value, gen);
and implementations for type serialized as JSON Arrays or Objects would differ slightly, as START-ARRAY/END-ARRAY and START-OBJECT/END-OBJECT pairs need to be properly handled with respect to serializing of contents.
Parameters
bean:Object

Value to serialize; can not be null.

gen:JsonGenerator

Generator used to output resulting Json content

provider:SerializerProvider

Provider that can be used to get serializers for serializing Objects value contains, if any.

typeSer:TypeSerializer

Type serializer to use for including type information

Annotations
@Override