Package org.simpleframework.xml.core
Class Traverser
java.lang.Object
org.simpleframework.xml.core.Traverser
The
Traverser
object is used to traverse the XML class
schema and either serialize or deserialize an object. This is the
root of all serialization and deserialization operations. It uses
the Root
annotation to ensure that the XML schema
matches the provided XML element. If no root element is defined the
serialization and deserialization cannot be performed.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate Composite
getComposite
(Class expect) This will create aComposite
object using the XML schema class provided.private Decorator
getDecorator
(Class type) This will acquire theDecorator
for the type.protected String
Extracts theRoot
annotation from the provided XML schema class.private Type
This is used to acquire a type for the provided class.Thisread
method is used to deserialize an object from the provided XML element.private Object
Thisread
method is used to deserialize an object from the provided XML element.Thisread
method will read the contents of the XML document from the provided source and populate the object with the values deserialized.boolean
Thisvalidate
method will validate the contents of the XML document against the specified XML class schema.void
write
(OutputNode node, Object source) Thiswrite
method is used to convert the provided object to an XML element.void
write
(OutputNode node, Object source, Class expect) Thiswrite
method is used to convert the provided object to an XML element.void
write
(OutputNode node, Object source, Class expect, String name) Thiswrite
method is used to convert the provided object to an XML element.
-
Field Details
-
context
This is the context object used for the traversal performed. -
style
This is the style that is used to style the XML roots.
-
-
Constructor Details
-
Traverser
Constructor for theTraverser
object. This creates a traverser that can be used to perform serialization or or deserialization of an object. This requires a source object.- Parameters:
context
- the context object used for the traversal
-
-
Method Details
-
getDecorator
This will acquire theDecorator
for the type. A decorator is an object that adds various details to the node without changing the overall structure of the node. For example comments and namespaces can be added to the node with a decorator as they do not affect the deserialization.- Parameters:
type
- this is the type to acquire the decorator for- Returns:
- this returns the decorator associated with this
- Throws:
Exception
-
read
Thisread
method is used to deserialize an object from the provided XML element. The class provided acts as the XML schema definition used to control the deserialization. If the XML schema does not have aRoot
annotation this throws an exception. Also if the root annotation name is not the same as the XML element name an exception is thrown.- Parameters:
node
- this is the node that is to be deserializedtype
- this is the XML schema class to be used- Returns:
- an object deserialized from the XML element
- Throws:
Exception
- if the XML schema does not match the node
-
read
Thisread
method will read the contents of the XML document from the provided source and populate the object with the values deserialized. This is used as a means of injecting an object with values deserialized from an XML document. If the XML source cannot be deserialized or there is a problem building the object graph an exception is thrown.- Parameters:
node
- this is the node that is to be deserializedvalue
- this is the value that is to be deserialized- Returns:
- an object deserialized from the XML element
- Throws:
Exception
- if the XML schema does not match the node
-
read
Thisread
method is used to deserialize an object from the provided XML element. The class provided acts as the XML schema definition used to control the deserialization. If the XML schema does not have aRoot
annotation this throws an exception. Also if the root annotation name is not the same as the XML element name an exception is thrown.- Parameters:
node
- this is the node that is to be deserializedvalue
- this is the XML schema object to be used- Returns:
- an object deserialized from the XML element
- Throws:
Exception
- if the XML schema does not match the XML
-
validate
Thisvalidate
method will validate the contents of the XML document against the specified XML class schema. This is used to perform a read traversal of the class schema such that the document can be tested against it. This is preferred to reading the document as it does not instantiate the objects or invoke any callback methods, thus making it a safe validation.- Parameters:
node
- this provides the source of the XML documenttype
- this is the class type to be validated against XML- Returns:
- true if the document matches the class XML schema
- Throws:
Exception
- if the class XML schema does not fully match
-
write
Thiswrite
method is used to convert the provided object to an XML element. This creates a child node from the givenOutputNode
object. Once this child element is created it is populated with the fields of the source object in accordance with the XML schema class.- Parameters:
source
- this is the object to be serialized to XML- Throws:
Exception
- thrown if there is a problem serializing
-
write
Thiswrite
method is used to convert the provided object to an XML element. This creates a child node from the givenOutputNode
object. Once this child element is created it is populated with the fields of the source object in accordance with the XML schema class.- Parameters:
source
- this is the object to be serialized to XMLexpect
- this is the class that is expected to be written- Throws:
Exception
- thrown if there is a problem serializing
-
write
Thiswrite
method is used to convert the provided object to an XML element. This creates a child node from the givenOutputNode
object. Once this child element is created it is populated with the fields of the source object in accordance with the XML schema class.- Parameters:
source
- this is the object to be serialized to XMLexpect
- this is the class that is expected to be writtenname
- this is the name of the root annotation used- Throws:
Exception
- thrown if there is a problem serializing
-
getComposite
This will create aComposite
object using the XML schema class provided. This makes use of the source object that this traverser has been given to create a composite converter.- Parameters:
expect
- this is the XML schema class to be used- Returns:
- a converter for the specified XML schema class
- Throws:
Exception
-
getType
This is used to acquire a type for the provided class. This will wrap the class in aType
wrapper object. Wrapping the class allows it to be used within the framework.- Parameters:
type
- this is the type that is to be wrapped for use- Returns:
- this returns the type that wraps the specified class
-
getName
Extracts theRoot
annotation from the provided XML schema class. If no annotation exists in the provided class the super class is checked and so on until theObject
is encountered, if no annotation is found this returns null.- Parameters:
type
- this is the XML schema class to use- Returns:
- this returns the root annotation for the XML schema
- Throws:
Exception
-