Class XmlBeanSerializerBase

java.lang.Object
com.fasterxml.jackson.databind.JsonSerializer<Object>
com.fasterxml.jackson.databind.ser.std.StdSerializer<Object>
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
com.fasterxml.jackson.dataformat.xml.ser.XmlBeanSerializerBase
All Implemented Interfaces:
com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable, com.fasterxml.jackson.databind.jsonschema.SchemaAware, com.fasterxml.jackson.databind.ser.ContextualSerializer, com.fasterxml.jackson.databind.ser.ResolvableSerializer, Serializable
Direct Known Subclasses:
UnwrappingXmlBeanSerializer, XmlBeanSerializer

public abstract class XmlBeanSerializerBase extends com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
Specific sub-class of BeanSerializerBase needed to take care of some xml-specific aspects, such as distinction between attributes and elements.
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer

    com.fasterxml.jackson.databind.JsonSerializer.None
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final int
    Number of attributes to write; these will have been ordered to be the first properties to write.
    protected final BitSet
    Optional set of indexes of properties that should be serialized as CDATA, instead of regular XML text segment.
    protected final int
    Index of "text value" property we have, if any; can have at most one such property.
    protected final QName[]
    Array that contains namespace URIs associated with properties, if any; null if no namespace definitions have been assigned
    static final String
    Marker used for storing associated internal data with BeanPropertyWriter instances; to mark instances that are to be written out as attributes.

    Fields inherited from class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase

    _anyGetterWriter, _beanType, _filteredProps, _objectIdWriter, _propertyFilterId, _props, _serializationShape, _typeId, NAME_FOR_OBJECT_REF, NO_PROPS

    Fields inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer

    _handledType
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
     
    XmlBeanSerializerBase(com.fasterxml.jackson.databind.ser.std.BeanSerializerBase src)
     
    protected
    XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] properties, com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] filteredProperties)
     
    protected
    XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter objectIdWriter)
     
    protected
    XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter objectIdWriter, Object filterId)
     
     
    XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.util.NameTransformer transformer)
     
    protected
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected static boolean
    _isAttribute(com.fasterxml.jackson.databind.ser.BeanPropertyWriter bpw)
     
    protected static boolean
    _isCData(com.fasterxml.jackson.databind.ser.BeanPropertyWriter bpw)
     
    protected static int
    _orderAttributesFirst(com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] properties, com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] filteredProperties)
    Method for re-sorting lists of bean properties such that attributes are strictly written before elements.
    protected void
    _serializeObjectId(Object bean, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer, com.fasterxml.jackson.databind.ser.impl.WritableObjectId objectId)
     
    protected void
    serializeFields(Object bean, com.fasterxml.jackson.core.JsonGenerator gen0, com.fasterxml.jackson.databind.SerializerProvider provider)
    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, com.fasterxml.jackson.core.JsonGenerator gen0, com.fasterxml.jackson.databind.SerializerProvider provider)
     
    void
    serializeWithType(Object bean, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer)
     

    Methods inherited from class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase

    _customTypeId, _serializeWithObjectId, _serializeWithObjectId, _typeIdDef, acceptJsonFormatVisitor, asArraySerializer, createContextual, findConvertingSerializer, getSchema, properties, resolve, serialize, usesObjectId, withByNameInclusion, withFilterId, withIgnorals, withIgnorals, withObjectIdWriter, withProperties

    Methods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer

    _neitherNull, _nonEmpty, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findConvertingContentSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, getSchema, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrow

    Methods inherited from class com.fasterxml.jackson.databind.JsonSerializer

    getDelegatee, isEmpty, isEmpty, isUnwrappingSerializer, replaceDelegatee, unwrappingSerializer

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • KEY_XML_INFO

      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.
    • _attributeCount

      protected final int _attributeCount
      Number of attributes to write; these will have been ordered to be the first properties to write.
    • _textPropertyIndex

      protected final int _textPropertyIndex
      Index of "text value" property we have, if any; can have at most one such property.
    • _xmlNames

      protected final QName[] _xmlNames
      Array that contains namespace URIs associated with properties, if any; null if no namespace definitions have been assigned
    • _cdata

      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.
  • Constructor Details

    • XmlBeanSerializerBase

      public XmlBeanSerializerBase(com.fasterxml.jackson.databind.ser.std.BeanSerializerBase src)
    • XmlBeanSerializerBase

      protected XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter objectIdWriter)
    • XmlBeanSerializerBase

      protected XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter objectIdWriter, Object filterId)
    • XmlBeanSerializerBase

      protected XmlBeanSerializerBase(XmlBeanSerializerBase src, Set<String> toIgnore, Set<String> toInclude)
    • XmlBeanSerializerBase

      public XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.util.NameTransformer transformer)
    • XmlBeanSerializerBase

      protected XmlBeanSerializerBase(XmlBeanSerializerBase src, com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] properties, com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] filteredProperties)
  • Method Details

    • serializeFields

      protected void serializeFields(Object bean, com.fasterxml.jackson.core.JsonGenerator gen0, com.fasterxml.jackson.databind.SerializerProvider provider) throws IOException
      Main serialization method needs to be overridden to allow XML-specific extra handling, such as indication of whether to write attributes or elements.
      Overrides:
      serializeFields in class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
      Throws:
      IOException
    • serializeFieldsFiltered

      protected void serializeFieldsFiltered(Object bean, com.fasterxml.jackson.core.JsonGenerator gen0, com.fasterxml.jackson.databind.SerializerProvider provider) throws IOException
      Overrides:
      serializeFieldsFiltered in class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
      Throws:
      IOException
    • serializeWithType

      public void serializeWithType(Object bean, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer) throws IOException
      Overrides:
      serializeWithType in class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
      Throws:
      IOException
    • _serializeObjectId

      protected void _serializeObjectId(Object bean, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer, com.fasterxml.jackson.databind.ser.impl.WritableObjectId objectId) throws IOException
      Overrides:
      _serializeObjectId in class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
      Throws:
      IOException
    • _isAttribute

      protected static boolean _isAttribute(com.fasterxml.jackson.databind.ser.BeanPropertyWriter bpw)
    • _isCData

      protected static boolean _isCData(com.fasterxml.jackson.databind.ser.BeanPropertyWriter bpw)
    • _orderAttributesFirst

      protected static int _orderAttributesFirst(com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] properties, com.fasterxml.jackson.databind.ser.BeanPropertyWriter[] filteredProperties)
      Method for re-sorting lists of bean properties such that attributes are strictly written before elements.