Package org.spincast.plugins.jacksonxml
Class SpincastXmlManager
java.lang.Object
org.spincast.plugins.jacksonxml.SpincastXmlManager
- All Implemented Interfaces:
XmlManager
Spincast Jackson XML manager
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static interface
protected static interface
-
Constructor Summary
ConstructorDescriptionSpincastXmlManager
(com.google.inject.Provider<com.google.inject.Injector> guiceProvider, JsonManager jsonManager, Set<XmlMixinInfo> xmlMixinInfos, com.fasterxml.jackson.dataformat.xml.XmlPrettyPrinter xmlPrettyPrinter) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addJsonArrayMixin
(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) Specifies the root element name when serializing a JsonArrayprotected void
addJsonObjectMixin
(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) Specifies the root element name when serializing a JsonObjectprotected void
addSpincastMixins
(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) protected void
configureEmptyBeans
(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) protected void
configureMixins
(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) protected void
configureXmlMapper
(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) Configuration of the XmlMapper.protected com.fasterxml.jackson.dataformat.xml.XmlMapper
Creates the XmlMapperprotected JsonArray
deserializeJsonArray
(com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser xmlParser, com.fasterxml.jackson.databind.DeserializationContext context) protected JsonArray
deserializeJsonArray
(com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser xmlParser, com.fasterxml.jackson.databind.DeserializationContext context, boolean firstElementSkipped) protected JsonObject
deserializeJsonObject
(com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser xmlParser, com.fasterxml.jackson.databind.DeserializationContext context, Map.Entry<String, Object> firstProperty) protected Object
deserializeObjectOrArray
(com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser xmlParser, com.fasterxml.jackson.databind.DeserializationContext context) Deserializes a XML to anJsonObject
.<T> T
Deserializes a XML to the given Class.<T> T
fromXmlInputStream
(InputStream inputStream, Class<T> clazz) Deserializes a XML inputstream to the given Type.fromXmlToJsonArray
(String xml) Deserializes a XML to anJsonArray
.<T> T
fromXmlToType
(String xml, Type type) Deserializes a XML to the given Type.protected String
The name of the attribute set on a XML element to indicate it comes from a JsonArray.protected com.google.inject.Injector
getGuice()
protected com.fasterxml.jackson.databind.JsonDeserializer<JsonArray>
protected com.fasterxml.jackson.databind.JsonSerializer<JsonArray>
protected JsonManager
protected com.fasterxml.jackson.databind.JsonDeserializer<JsonObject>
protected com.fasterxml.jackson.databind.JsonSerializer<JsonObject>
protected com.fasterxml.jackson.dataformat.xml.XmlMapper
protected com.fasterxml.jackson.dataformat.xml.XmlMapper
protected Set<XmlMixinInfo>
protected com.fasterxml.jackson.dataformat.xml.XmlPrettyPrinter
protected void
injectDependencies
(Object obj) Once the deserialization of an Object is done, we inject dependencies using Guice.protected void
registerCustomModules
(com.fasterxml.jackson.dataformat.xml.XmlMapper objectMapper) protected void
registerJsonObjectModule
(com.fasterxml.jackson.dataformat.xml.XmlMapper objectMapper) Register our custom (de)serializers for JsonObjectConverts an object to XML.Converts an object to XML.
-
Constructor Details
-
SpincastXmlManager
@Inject public SpincastXmlManager(com.google.inject.Provider<com.google.inject.Injector> guiceProvider, JsonManager jsonManager, @Nullable Set<XmlMixinInfo> xmlMixinInfos, com.fasterxml.jackson.dataformat.xml.XmlPrettyPrinter xmlPrettyPrinter)
-
-
Method Details
-
getGuice
protected com.google.inject.Injector getGuice() -
getJsonManager
-
getXmlMixinInfos
-
getXmlPrettyPrinter
protected com.fasterxml.jackson.dataformat.xml.XmlPrettyPrinter getXmlPrettyPrinter() -
getXmlMapper
protected com.fasterxml.jackson.dataformat.xml.XmlMapper getXmlMapper() -
createXmlMapper
protected com.fasterxml.jackson.dataformat.xml.XmlMapper createXmlMapper()Creates the XmlMapper -
configureXmlMapper
protected void configureXmlMapper(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) Configuration of the XmlMapper. -
configureEmptyBeans
protected void configureEmptyBeans(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) -
configureMixins
protected void configureMixins(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) -
addSpincastMixins
protected void addSpincastMixins(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) -
addJsonObjectMixin
protected void addJsonObjectMixin(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) Specifies the root element name when serializing a JsonObject -
addJsonArrayMixin
protected void addJsonArrayMixin(com.fasterxml.jackson.dataformat.xml.XmlMapper xmlMapper) Specifies the root element name when serializing a JsonArray -
getXmlMapperPretty
protected com.fasterxml.jackson.dataformat.xml.XmlMapper getXmlMapperPretty() -
getArrayAttributeName
The name of the attribute set on a XML element to indicate it comes from a JsonArray. This allows us to deserialize the XML back to the correct structure. -
getJsonObjectSerializer
-
getJsonArraySerializer
-
getJsonObjectDeserializer
-
getJsonArrayDeserializer
-
deserializeObjectOrArray
protected Object deserializeObjectOrArray(com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser xmlParser, com.fasterxml.jackson.databind.DeserializationContext context) -
deserializeJsonArray
protected JsonArray deserializeJsonArray(com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser xmlParser, com.fasterxml.jackson.databind.DeserializationContext context) -
deserializeJsonArray
protected JsonArray deserializeJsonArray(com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser xmlParser, com.fasterxml.jackson.databind.DeserializationContext context, boolean firstElementSkipped) -
deserializeJsonObject
protected JsonObject deserializeJsonObject(com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser xmlParser, com.fasterxml.jackson.databind.DeserializationContext context, Map.Entry<String, Object> firstProperty) -
registerCustomModules
protected void registerCustomModules(com.fasterxml.jackson.dataformat.xml.XmlMapper objectMapper) -
registerJsonObjectModule
protected void registerJsonObjectModule(com.fasterxml.jackson.dataformat.xml.XmlMapper objectMapper) Register our custom (de)serializers for JsonObject -
toXml
Description copied from interface:XmlManager
Converts an object to XML. If the object to convert is aJsonObject
, its elements of type "JsonArray" will have a "isArray='true'" attribute added. This way, the XML can be deserialized back to aJsonObject
correctly.- Specified by:
toXml
in interfaceXmlManager
-
toXml
Description copied from interface:XmlManager
Converts an object to XML.- Specified by:
toXml
in interfaceXmlManager
pretty
- Iftrue
, the generated XML will be formatted.
-
fromXml
Description copied from interface:XmlManager
Deserializes a XML to anJsonObject
. This will correctly manage the XML generated by toXml(), arrays included.- Specified by:
fromXml
in interfaceXmlManager
-
fromXmlToJsonArray
Description copied from interface:XmlManager
Deserializes a XML to anJsonArray
. This will correctly manage the XML generated by toXml(), arrays included.- Specified by:
fromXmlToJsonArray
in interfaceXmlManager
-
fromXml
Description copied from interface:XmlManager
Deserializes a XML to the given Class. Be aware that if you use a default Type like Map<String, Object>, the arrays will probably won't be deserialized correctly. Use the version returning aJsonObject
to get the arrays to work out of the box!- Specified by:
fromXml
in interfaceXmlManager
-
injectDependencies
Once the deserialization of an Object is done, we inject dependencies using Guice. -
fromXmlToType
Description copied from interface:XmlManager
Deserializes a XML to the given Type. Be aware that if you use a default Type like Map<String, Object>, the arrays will probably won't be deserialized correctly. Use the version returning aJsonObject
to get the arrays to work out of the box!- Specified by:
fromXmlToType
in interfaceXmlManager
-
fromXmlInputStream
Description copied from interface:XmlManager
Deserializes a XML inputstream to the given Type. Be aware that if you use a default Type like Map<String, Object>, the arrays will probably won't be deserialized correctly. Use the version returning aJsonObject
to get the arrays to work out of the box!- Specified by:
fromXmlInputStream
in interfaceXmlManager
-