simple.xml.load
Class Persister

java.lang.Object
  extended by simple.xml.load.Persister
All Implemented Interfaces:
Serializer

public class Persister
extends java.lang.Object
implements Serializer

The Persister object is used to provide an implementation of a serializer. This implements the Serializer interface and enables objects to be persisted and loaded from various sources. This implementation makes use of Filter objects to replace template variables within the source XML document.

Deserialization is performed by passing an XML schema class into one of the read methods along with the source of an XML stream. The read method then reads the contents of the XML stream and builds the object using annotations within the XML schema class.

Serialization is peformed by passing an object and an XML stream into one of the write methods. The serialization process will use the class of the provided object as the schema class. The object is traversed and all fields are marshalled to the result stream.

Author:
Niall Gallagher
See Also:
Serializer

Constructor Summary
Persister()
          Constructor for the Persister object.
Persister(Filter filter)
          Constructor for the Persister object.
Persister(Filter filter, Format format)
          Constructor for the Persister object.
Persister(Format format)
          Constructor for the Persister object.
Persister(java.util.Map filter)
          Constructor for the Persister object.
Persister(Strategy strategy)
          Constructor for the Persister object.
Persister(Strategy strategy, Filter filter)
          Constructor for the Persister object.
Persister(Strategy strategy, Filter filter, Format format)
          Constructor for the Persister object.
Persister(Strategy strategy, Format format)
          Constructor for the Persister object.
Persister(Strategy strategy, java.util.Map data)
          Constructor for the Persister object.
Persister(Strategy strategy, java.util.Map data, Format format)
          Constructor for the Persister object.
 
Method Summary
<T> T
read(java.lang.Class<? extends T> type, java.io.File source)
          This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type.
<T> T
read(java.lang.Class<? extends T> type, InputNode source)
          This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type.
<T> T
read(java.lang.Class<? extends T> type, java.io.InputStream source)
          This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type.
<T> T
read(java.lang.Class<? extends T> type, java.io.InputStream source, java.lang.String charset)
          This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type.
<T> T
read(java.lang.Class<? extends T> type, java.io.Reader source)
          This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type.
<T> T
read(java.lang.Class<? extends T> type, java.lang.String source)
          This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type.
 void write(java.lang.Object source, java.io.File out)
          This write method will traverse the provided object checking for field annotations in order to compose the XML data.
 void write(java.lang.Object source, OutputNode root)
          This write method will traverse the provided object checking for field annotations in order to compose the XML data.
 void write(java.lang.Object source, java.io.OutputStream out)
          This write method will traverse the provided object checking for field annotations in order to compose the XML data.
 void write(java.lang.Object source, java.io.OutputStream out, java.lang.String charset)
          This write method will traverse the provided object checking for field annotations in order to compose the XML data.
 void write(java.lang.Object source, java.io.Writer out)
          This write method will traverse the provided object checking for field annotations in order to compose the XML data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Persister

public Persister()
Constructor for the Persister object. This is used to create a serializer object that will use an empty filter. This means that template variables will remain unchanged within the XML document parsed when an object is deserialized.


Persister

public Persister(java.util.Map filter)
Constructor for the Persister object. This is used to create a serializer object that will use a platform filter object using the overrides within the provided map. This means that template variables will be replaced firstly with mappings from within the provided map, followed by system properties.

Parameters:
filter - this is the map that contains the overrides

Persister

public Persister(Filter filter)
Constructor for the Persister object. This is used to create a serializer object that will use the provided filter. This persister will replace all variables encountered when deserializing an object with mappings found in the filter.

Parameters:
filter - the filter used to replace template variables

Persister

public Persister(Strategy strategy)
Constructor for the Persister object. This is used to create a serializer object that will use a strategy object. This persister will use the provided Strategy to intercept the XML elements in order to read and write persisent data, such as the class name or version of the document.

Parameters:
strategy - this is the strategy used to resolve classes

Persister

public Persister(Format format)
Constructor for the Persister object. This is used to create a serializer object that will use the provided format instructions. The persister uses the Format object to structure the generated XML. It determines the indent size of the document and whether it should contain a prolog.

Parameters:
format - this is used to structure the generated XML

Persister

public Persister(Filter filter,
                 Format format)
Constructor for the Persister object. This is used to create a serializer object that will use the provided filter. This persister will replace all variables encountered when deserializing an object with mappings found in the filter.

Parameters:
filter - the filter used to replace template variables
format - this is used to structure the generated XML

Persister

public Persister(Strategy strategy,
                 Format format)
Constructor for the Persister object. This is used to create a serializer object that will use a strategy object. This persister will use the provided Strategy to intercept the XML elements in order to read and write persisent data, such as the class name or version of the document.

Parameters:
strategy - this is the strategy used to resolve classes
format - this is used to structure the generated XML

Persister

public Persister(Strategy strategy,
                 java.util.Map data)
Constructor for the Persister object. This is used to create a serializer object that will use a platform filter object using the overrides within the provided map. This means that template variables will be replaced firstly with mappings from within the provided map, followed by system properties.

This persister will use the provided Strategy to intercept the XML elements in order to read and write persisent data, such as the class name or version of the document.

Parameters:
strategy - this is the strategy used to resolve classes
data - this is the map that contains the overrides

Persister

public Persister(Strategy strategy,
                 Filter filter)
Constructor for the Persister object. This is used to create a serializer object that will use the provided filter. This persister will replace all variables encountered when deserializing an object with mappings found in the filter.

This persister will use the provided Strategy to intercept the XML elements in order to read and write persisent data, such as the class name or version of the document.

Parameters:
strategy - this is the strategy used to resolve classes
filter - the filter used to replace template variables

Persister

public Persister(Strategy strategy,
                 java.util.Map data,
                 Format format)
Constructor for the Persister object. This is used to create a serializer object that will use the provided filter. This persister will replace all variables encountered when deserializing an object with mappings found in the filter.

This persister will use the provided Strategy to intercept the XML elements in order to read and write persisent data, such as the class name or version of the document.

Parameters:
strategy - this is the strategy used to resolve classes
data - the filter data used to replace template variables
format - this is used to format the generated XML document

Persister

public Persister(Strategy strategy,
                 Filter filter,
                 Format format)
Constructor for the Persister object. This is used to create a serializer object that will use the provided filter. This persister will replace all variables encountered when deserializing an object with mappings found in the filter.

This persister will use the provided Strategy to intercept the XML elements in order to read and write persisent data, such as the class name or version of the document.

Parameters:
strategy - this is the strategy used to resolve classes
filter - the filter used to replace template variables
format - this is used to format the generated XML document
Method Detail

read

public <T> T read(java.lang.Class<? extends T> type,
                  java.lang.String source)
       throws java.lang.Exception
This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type. If the XML source cannot be deserialized or there is a problem building the object graph an exception is thrown. The instance deserialized is returned.

Specified by:
read in interface Serializer
Parameters:
type - this is the class type to be deserialized from XML
source - this provides the source of the XML document
Returns:
the object deserialized from the XML document
Throws:
java.lang.Exception - if the object cannot be fully deserialized

read

public <T> T read(java.lang.Class<? extends T> type,
                  java.io.File source)
       throws java.lang.Exception
This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type. If the XML source cannot be deserialized or there is a problem building the object graph an exception is thrown. The instance deserialized is returned.

Specified by:
read in interface Serializer
Parameters:
type - this is the class type to be deserialized from XML
source - this provides the source of the XML document
Returns:
the object deserialized from the XML document
Throws:
java.lang.Exception - if the object cannot be fully deserialized

read

public <T> T read(java.lang.Class<? extends T> type,
                  java.io.InputStream source)
       throws java.lang.Exception
This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type. If the XML source cannot be deserialized or there is a problem building the object graph an exception is thrown. The instance deserialized is returned.

Specified by:
read in interface Serializer
Parameters:
type - this is the class type to be deserialized from XML
source - this provides the source of the XML document
Returns:
the object deserialized from the XML document
Throws:
java.lang.Exception - if the object cannot be fully deserialized

read

public <T> T read(java.lang.Class<? extends T> type,
                  java.io.InputStream source,
                  java.lang.String charset)
       throws java.lang.Exception
This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type. If the XML source cannot be deserialized or there is a problem building the object graph an exception is thrown. The instance deserialized is returned.

Specified by:
read in interface Serializer
Parameters:
type - this is the class type to be deserialized from XML
source - this provides the source of the XML document
charset - this is the character set to read the XML with
Returns:
the object deserialized from the XML document
Throws:
java.lang.Exception - if the object cannot be fully deserialized

read

public <T> T read(java.lang.Class<? extends T> type,
                  java.io.Reader source)
       throws java.lang.Exception
This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type. If the XML source cannot be deserialized or there is a problem building the object graph an exception is thrown. The instance deserialized is returned.

Specified by:
read in interface Serializer
Parameters:
type - this is the class type to be deserialized from XML
source - this provides the source of the XML document
Returns:
the object deserialized from the XML document
Throws:
java.lang.Exception - if the object cannot be fully deserialized

read

public <T> T read(java.lang.Class<? extends T> type,
                  InputNode source)
       throws java.lang.Exception
This read method will read the contents of the XML document from the provided source and convert it into an object of the specified type. If the XML source cannot be deserialized or there is a problem building the object graph an exception is thrown. The instance deserialized is returned.

Parameters:
type - this is the class type to be deserialized from XML
source - this provides the source of the XML document
Returns:
the object deserialized from the XML document
Throws:
java.lang.Exception - if the object cannot be fully deserialized

write

public void write(java.lang.Object source,
                  OutputNode root)
           throws java.lang.Exception
This write method will traverse the provided object checking for field annotations in order to compose the XML data. This uses the getClass method on the object to determine the class file that will be used to compose the schema. If there is no Root annotation for the class then this will throw an exception. The root annotation is the only annotation required for an object to be serialized.

Parameters:
source - this is the object that is to be serialized
root - this is where the serialized XML is written to
Throws:
java.lang.Exception - if the schema for the object is not valid

write

public void write(java.lang.Object source,
                  java.io.File out)
           throws java.lang.Exception
This write method will traverse the provided object checking for field annotations in order to compose the XML data. This uses the getClass method on the object to determine the class file that will be used to compose the schema. If there is no Root annotation for the class then this will throw an exception. The root annotation is the only annotation required for an object to be serialized.

Specified by:
write in interface Serializer
Parameters:
source - this is the object that is to be serialized
out - this is where the serialized XML is written to
Throws:
java.lang.Exception - if the schema for the object is not valid

write

public void write(java.lang.Object source,
                  java.io.OutputStream out)
           throws java.lang.Exception
This write method will traverse the provided object checking for field annotations in order to compose the XML data. This uses the getClass method on the object to determine the class file that will be used to compose the schema. If there is no Root annotation for the class then this will throw an exception. The root annotation is the only annotation required for an object to be serialized.

Specified by:
write in interface Serializer
Parameters:
source - this is the object that is to be serialized
out - this is where the serialized XML is written to
Throws:
java.lang.Exception - if the schema for the object is not valid

write

public void write(java.lang.Object source,
                  java.io.OutputStream out,
                  java.lang.String charset)
           throws java.lang.Exception
This write method will traverse the provided object checking for field annotations in order to compose the XML data. This uses the getClass method on the object to determine the class file that will be used to compose the schema. If there is no Root annotation for the class then this will throw an exception. The root annotation is the only annotation required for an object to be serialized.

Specified by:
write in interface Serializer
Parameters:
source - this is the object that is to be serialized
out - this is where the serialized XML is written to
charset - this is the character encoding to be used
Throws:
java.lang.Exception - if the schema for the object is not valid

write

public void write(java.lang.Object source,
                  java.io.Writer out)
           throws java.lang.Exception
This write method will traverse the provided object checking for field annotations in order to compose the XML data. This uses the getClass method on the object to determine the class file that will be used to compose the schema. If there is no Root annotation for the class then this will throw an exception. The root annotation is the only annotation required for an object to be serialized.

Specified by:
write in interface Serializer
Parameters:
source - this is the object that is to be serialized
out - this is where the serialized XML is written to
Throws:
java.lang.Exception - if the schema for the object is not valid