1 package com.fasterxml.jackson.dataformat.xml.ser;
2
3 import java.io.IOException;
4 import java.util.Set;
5
6 import com.fasterxml.jackson.core.JsonGenerator;
7 import com.fasterxml.jackson.databind.JsonSerializer;
8 import com.fasterxml.jackson.databind.SerializerProvider;
9 import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
10 import com.fasterxml.jackson.databind.ser.BeanSerializer;
11 import com.fasterxml.jackson.databind.ser.impl.BeanAsArraySerializer;
12 import com.fasterxml.jackson.databind.ser.impl.ObjectIdWriter;
13 import com.fasterxml.jackson.databind.ser.std.BeanSerializerBase;
14 import com.fasterxml.jackson.databind.util.NameTransformer;
15
16
21 public class XmlBeanSerializer extends XmlBeanSerializerBase
22 {
23 private static final long serialVersionUID = 1L;
24
25
30 public XmlBeanSerializer(BeanSerializerBase src) {
31 super(src);
32 }
33
34 public XmlBeanSerializer(XmlBeanSerializerBase src, ObjectIdWriter objectIdWriter, Object filterId) {
35 super(src, objectIdWriter, filterId);
36 }
37
38 public XmlBeanSerializer(XmlBeanSerializerBase src, ObjectIdWriter objectIdWriter) {
39 super(src, objectIdWriter);
40 }
41
42 public XmlBeanSerializer(XmlBeanSerializerBase src, Set<String> toIgnore) {
43 super(src, toIgnore);
44 }
45
46 protected XmlBeanSerializer(XmlBeanSerializerBase src,
47 BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties)
48 {
49 super(src, properties, filteredProperties);
50 }
51
52
57
58 @Override
59 public JsonSerializer<Object> unwrappingSerializer(NameTransformer unwrapper) {
60 return new UnwrappingXmlBeanSerializer(this, unwrapper);
61 }
62
63 @Override
64 public BeanSerializerBase withObjectIdWriter(ObjectIdWriter objectIdWriter) {
65 return new XmlBeanSerializer(this, objectIdWriter, _propertyFilterId);
66 }
67
68 @Override
69 public BeanSerializerBase withFilterId(Object filterId) {
70 return new XmlBeanSerializer(this, _objectIdWriter, filterId);
71 }
72
73 @Override
74 protected BeanSerializerBase withIgnorals(Set<String> toIgnore) {
75 return new XmlBeanSerializer(this, toIgnore);
76 }
77
78 @Override
79 protected BeanSerializerBase withProperties(BeanPropertyWriter[] properties,
80 BeanPropertyWriter[] filteredProperties) {
81 return new XmlBeanSerializer(this, properties, filteredProperties);
82 }
83
84
90 @Override
91 protected BeanSerializerBase asArraySerializer()
92 {
93
98 if ((_objectIdWriter == null)
99 && (_anyGetterWriter == null)
100 && (_propertyFilterId == null)
101 ) {
102 return new BeanAsArraySerializer(this);
103 }
104
105 return this;
106 }
107
108
113
114
118 @Override
119 public void serialize(Object bean, JsonGenerator g, SerializerProvider provider) throws IOException
120 {
121 if (_objectIdWriter != null) {
122 _serializeWithObjectId(bean, g, provider, true);
123 return;
124 }
125 g.writeStartObject();
126 if (_propertyFilterId != null) {
127 serializeFieldsFiltered(bean, g, provider);
128 } else {
129 serializeFields(bean, g, provider);
130 }
131 g.writeEndObject();
132 }
133
134
139
140 @Override
141 public String toString() {
142 return "XmlBeanSerializer for " + handledType().getName();
143 }
144 }
145