Package org.simpleframework.xml.core
Class CompositeInlineMap
- java.lang.Object
-
- org.simpleframework.xml.core.CompositeInlineMap
-
class CompositeInlineMap extends java.lang.Object implements Repeater
TheCompositeMapis used to serialize and deserialize maps to and from a source XML document. The structure of the map in the XML format is determined by the annotation. Keys can be either attributes or elements, and values can be inline. This can perform serialization and deserialization of the key and value objects whether the object types are primitive or composite.<map> <entry key='1'> <value>one</value> </entry> <entry key='2'> <value>two</value> </entry> </map>For the above XML element map the elemententryis used to wrap the key and value such that they can be grouped. This element does not represent any real object. The names of each of the XML elements serialized and deserialized can be configured.- See Also:
Entry
-
-
Field Summary
Fields Modifier and Type Field Description private EntryentryThe entry object contains the details on how to write the map.private MapFactoryfactoryThe factory used to create suitable map object instances.private ConverterkeyThis is the name of the entry wrapping the key and value.private StylestyleThis is the style used to style the names used for the XML.private ConvertervalueThis is the type that the value objects are instances of.
-
Constructor Summary
Constructors Constructor Description CompositeInlineMap(Context context, Entry entry, Type type)Constructor for theCompositeMapobject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectread(InputNode node)Thisreadmethod will read the XML element map from the provided node and deserialize its children as entry types.java.lang.Objectread(InputNode node, java.lang.Object value)Thisreadmethod will read the XML element map from the provided node and deserialize its children as entry types.private java.lang.Objectread(InputNode node, java.util.Map map)Thisreadmethod will read the XML element map from the provided node and deserialize its children as entry types.booleanvalidate(InputNode node)Thisreadmethod will read the XML element map from the provided node and deserialize its children as entry types.voidwrite(OutputNode node, java.lang.Object source)Thiswritemethod will write the key value pairs within the provided map to the specified XML node.private voidwrite(OutputNode node, java.util.Map map, Mode mode)Thiswritemethod will write the key value pairs within the provided map to the specified XML node.
-
-
-
Field Detail
-
factory
private final MapFactory factory
The factory used to create suitable map object instances.
-
value
private final Converter value
This is the type that the value objects are instances of.
-
key
private final Converter key
This is the name of the entry wrapping the key and value.
-
style
private final Style style
This is the style used to style the names used for the XML.
-
entry
private final Entry entry
The entry object contains the details on how to write the map.
-
-
Constructor Detail
-
CompositeInlineMap
public CompositeInlineMap(Context context, Entry entry, Type type) throws java.lang.Exception
Constructor for theCompositeMapobject. This will create a converter that is capable of writing map objects to and from XML. The resulting XML is configured by an annotation such that key values can attributes and values can be inline.- Parameters:
context- this is the root context for the serializationentry- this provides configuration for the resulting XMLtype- this is the map type that is to be converted- Throws:
java.lang.Exception
-
-
Method Detail
-
read
public java.lang.Object read(InputNode node) throws java.lang.Exception
Thisreadmethod will read the XML element map from the provided node and deserialize its children as entry types. Each entry type must contain a key and value so that the entry can be inserted in to the map as a pair. If either the key or value is composite it is read as a root object, which means itsRootannotation must be present and the name of the object element must match that root element name.
-
read
public java.lang.Object read(InputNode node, java.lang.Object value) throws java.lang.Exception
Thisreadmethod will read the XML element map from the provided node and deserialize its children as entry types. Each entry type must contain a key and value so that the entry can be inserted in to the map as a pair. If either the key or value is composite it is read as a root object, which means itsRootannotation must be present and the name of the object element must match that root element name.- Specified by:
readin interfaceConverter- Specified by:
readin interfaceRepeater- Parameters:
node- this is the XML element that is to be deserializedvalue- this is the value to read the objects in to- Returns:
- this returns the item to attach to the object contact
- Throws:
java.lang.Exception- if a deserialized type cannot be instantiated
-
read
private java.lang.Object read(InputNode node, java.util.Map map) throws java.lang.Exception
Thisreadmethod will read the XML element map from the provided node and deserialize its children as entry types. Each entry type must contain a key and value so that the entry can be inserted in to the map as a pair. If either the key or value is composite it is read as a root object, which means itsRootannotation must be present and the name of the object element must match that root element name.- Parameters:
node- this is the XML element that is to be deserializedmap- this is the map object that is to be populated- Returns:
- this returns the item to attach to the object contact
- Throws:
java.lang.Exception
-
validate
public boolean validate(InputNode node) throws java.lang.Exception
Thisreadmethod will read the XML element map from the provided node and deserialize its children as entry types. Each entry type must contain a key and value so that the entry can be inserted in to the map as a pair. If either the key or value is composite it is read as a root object, which means itsRootannotation must be present and the name of the object element must match that root element name.
-
write
public void write(OutputNode node, java.lang.Object source) throws java.lang.Exception
Thiswritemethod will write the key value pairs within the provided map to the specified XML node. This will write each entry type must contain a key and value so that the entry can be deserialized in to the map as a pair. If the key or value object is composite it is read as a root object so itsRootannotation must be present.
-
write
private void write(OutputNode node, java.util.Map map, Mode mode) throws java.lang.Exception
Thiswritemethod will write the key value pairs within the provided map to the specified XML node. This will write each entry type must contain a key and value so that the entry can be deserialized in to the map as a pair. If the key or value object is composite it is read as a root object so itsRootannotation must be present.- Parameters:
node- this is the node the map is to be written tomap- this is the source map that is to be writtenmode- this is the mode that has been inherited- Throws:
java.lang.Exception
-
-