Class CompositeInlineMap

java.lang.Object
org.simpleframework.xml.core.CompositeInlineMap
All Implemented Interfaces:
Converter, Repeater

class CompositeInlineMap extends Object implements Repeater
The CompositeMap is 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 element entry is 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:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final Entry
    The entry object contains the details on how to write the map.
    private final MapFactory
    The factory used to create suitable map object instances.
    private final Converter
    This is the name of the entry wrapping the key and value.
    private final Style
    This is the style used to style the names used for the XML.
    private final Converter
    This is the type that the value objects are instances of.
  • Constructor Summary

    Constructors
    Constructor
    Description
    CompositeInlineMap(Context context, Entry entry, Type type)
    Constructor for the CompositeMap object.
  • Method Summary

    Modifier and Type
    Method
    Description
    This read method will read the XML element map from the provided node and deserialize its children as entry types.
    read(InputNode node, Object value)
    This read method will read the XML element map from the provided node and deserialize its children as entry types.
    private Object
    read(InputNode node, Map map)
    This read method will read the XML element map from the provided node and deserialize its children as entry types.
    boolean
    This read method will read the XML element map from the provided node and deserialize its children as entry types.
    void
    write(OutputNode node, Object source)
    This write method will write the key value pairs within the provided map to the specified XML node.
    private void
    write(OutputNode node, Map map, Mode mode)
    This write method will write the key value pairs within the provided map to the specified XML node.

    Methods inherited from class java.lang.Object

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

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

    • CompositeInlineMap

      public CompositeInlineMap(Context context, Entry entry, Type type) throws Exception
      Constructor for the CompositeMap object. 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 serialization
      entry - this provides configuration for the resulting XML
      type - this is the map type that is to be converted
      Throws:
      Exception
  • Method Details

    • read

      public Object read(InputNode node) throws Exception
      This read method 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 its Root annotation must be present and the name of the object element must match that root element name.
      Specified by:
      read in interface Converter
      Parameters:
      node - this is the XML element that is to be deserialized
      Returns:
      this returns the item to attach to the object contact
      Throws:
      Exception - if a deserialized type cannot be instantiated
    • read

      public Object read(InputNode node, Object value) throws Exception
      This read method 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 its Root annotation must be present and the name of the object element must match that root element name.
      Specified by:
      read in interface Converter
      Specified by:
      read in interface Repeater
      Parameters:
      node - this is the XML element that is to be deserialized
      value - this is the value to read the objects in to
      Returns:
      this returns the item to attach to the object contact
      Throws:
      Exception - if a deserialized type cannot be instantiated
    • read

      private Object read(InputNode node, Map map) throws Exception
      This read method 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 its Root annotation 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 deserialized
      map - this is the map object that is to be populated
      Returns:
      this returns the item to attach to the object contact
      Throws:
      Exception
    • validate

      public boolean validate(InputNode node) throws Exception
      This read method 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 its Root annotation must be present and the name of the object element must match that root element name.
      Specified by:
      validate in interface Converter
      Parameters:
      node - this is the XML element that is to be deserialized
      Returns:
      this returns the item to attach to the object contact
      Throws:
      Exception - if the class XML schema does not fully match
    • write

      public void write(OutputNode node, Object source) throws Exception
      This write method 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 its Root annotation must be present.
      Specified by:
      write in interface Converter
      Parameters:
      node - this is the node the map is to be written to
      source - this is the source map that is to be written
      Throws:
      Exception - throw if the object cannot be serialized
    • write

      private void write(OutputNode node, Map map, Mode mode) throws Exception
      This write method 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 its Root annotation must be present.
      Parameters:
      node - this is the node the map is to be written to
      map - this is the source map that is to be written
      mode - this is the mode that has been inherited
      Throws:
      Exception