Class CompositeValue

  • All Implemented Interfaces:
    Converter

    class CompositeValue
    extends java.lang.Object
    implements Converter
    The CompositeValue object is used to convert an object to an from an XML element. This accepts only composite objects and will maintain all references within the object using the cycle strategy if required. This also ensures that should the value to be written to the XML element be null that nothing is written.
    See Also:
    ElementMap
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private Context context
      This is the context used to support the serialization process.
      private Entry entry
      This is the entry object used to provide configuration details.
      private Traverser root
      This is the traverser used to read and write the value with.
      private Style style
      This is the style used to style the names used for the XML.
      private Type type
      This represents the type of object the value is written as.
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object read​(InputNode node)
      This method is used to read the value object from the node.
      java.lang.Object read​(InputNode node, java.lang.Object value)
      This method is used to read the value object from the node.
      boolean validate​(InputNode node)
      This method is used to read the value object from the node.
      private boolean validate​(InputNode node, java.lang.String key)
      This method is used to read the value object from the node.
      void write​(OutputNode node, java.lang.Object item)
      This method is used to write the value to the specified node.
      • Methods inherited from class java.lang.Object

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

      • context

        private final Context context
        This is the context used to support the serialization process.
      • root

        private final Traverser root
        This is the traverser used to read and write the value with.
      • style

        private final Style style
        This is the style used to style the names used for the XML.
      • entry

        private final Entry entry
        This is the entry object used to provide configuration details.
      • type

        private final Type type
        This represents the type of object the value is written as.
    • Constructor Detail

      • CompositeValue

        public CompositeValue​(Context context,
                              Entry entry,
                              Type type)
                       throws java.lang.Exception
        Constructor for the CompositeValue object. This will create an object capable of reading an writing composite values from an XML element. This also allows a parent element to be created to wrap the key object if desired.
        Parameters:
        context - this is the root context for the serialization
        entry - this is the entry object used for configuration
        type - this is the type of object the value represents
        Throws:
        java.lang.Exception
    • Method Detail

      • read

        public java.lang.Object read​(InputNode node)
                              throws java.lang.Exception
        This method is used to read the value object from the node. The value read from the node is resolved using the template filter. If the value data can not be found according to the annotation attributes then null is assumed and returned.
        Specified by:
        read in interface Converter
        Parameters:
        node - this is the node to read the value object from
        Returns:
        this returns the value deserialized from the node
        Throws:
        java.lang.Exception - if a deserialized type cannot be instantiated
      • read

        public java.lang.Object read​(InputNode node,
                                     java.lang.Object value)
                              throws java.lang.Exception
        This method is used to read the value object from the node. The value read from the node is resolved using the template filter. If the value data can not be found according to the annotation attributes then null is assumed and returned.
        Specified by:
        read in interface Converter
        Parameters:
        node - this is the node to read the value object from
        value - this is the value to deserialize in to
        Returns:
        this returns the value deserialized from the node
        Throws:
        java.lang.Exception - if value is not null an exception is thrown
      • validate

        public boolean validate​(InputNode node)
                         throws java.lang.Exception
        This method is used to read the value object from the node. The value read from the node is resolved using the template filter. If the value data can not be found according to the annotation attributes then null is assumed and the node is valid.
        Specified by:
        validate in interface Converter
        Parameters:
        node - this is the node to read the value object from
        Returns:
        this returns true if this represents a valid value
        Throws:
        java.lang.Exception - if the class XML schema does not fully match
      • validate

        private boolean validate​(InputNode node,
                                 java.lang.String key)
                          throws java.lang.Exception
        This method is used to read the value object from the node. The value read from the node is resolved using the template filter. If the value data can not be found according to the annotation attributes then null is assumed and the node is valid.
        Parameters:
        node - this is the node to read the value object from
        key - this is the name of the value element
        Returns:
        this returns true if this represents a valid value
        Throws:
        java.lang.Exception
      • write

        public void write​(OutputNode node,
                          java.lang.Object item)
                   throws java.lang.Exception
        This method is used to write the value to the specified node. The value written to the node must be a composite object and if the object provided to this is null then nothing is written.
        Specified by:
        write in interface Converter
        Parameters:
        node - this is the node that the value is written to
        item - this is the item that is to be written
        Throws:
        java.lang.Exception - throw if the object cannot be serialized