public class Persister extends java.lang.Object implements Serializer
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.
Serializer
Constructor and Description |
---|
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. |
Modifier and Type | Method and Description |
---|---|
<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. |
public Persister()
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.public Persister(java.util.Map filter)
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.filter
- this is the map that contains the overridespublic Persister(Filter filter)
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.filter
- the filter used to replace template variablespublic Persister(Strategy strategy)
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.strategy
- this is the strategy used to resolve classespublic Persister(Format format)
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.format
- this is used to structure the generated XMLpublic Persister(Filter filter, Format format)
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.filter
- the filter used to replace template variablesformat
- this is used to structure the generated XMLpublic Persister(Strategy strategy, Format format)
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.strategy
- this is the strategy used to resolve classesformat
- this is used to structure the generated XMLpublic Persister(Strategy strategy, java.util.Map data)
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.
strategy
- this is the strategy used to resolve classesdata
- this is the map that contains the overridespublic Persister(Strategy strategy, Filter filter)
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.
strategy
- this is the strategy used to resolve classesfilter
- the filter used to replace template variablespublic Persister(Strategy strategy, java.util.Map data, Format format)
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.
strategy
- this is the strategy used to resolve classesdata
- the filter data used to replace template variablesformat
- this is used to format the generated XML documentpublic Persister(Strategy strategy, Filter filter, Format format)
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.
strategy
- this is the strategy used to resolve classesfilter
- the filter used to replace template variablesformat
- this is used to format the generated XML documentpublic <T> T read(java.lang.Class<? extends T> type, java.lang.String source) throws java.lang.Exception
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.read
in interface Serializer
type
- this is the class type to be deserialized from XMLsource
- this provides the source of the XML documentjava.lang.Exception
- if the object cannot be fully deserializedpublic <T> T read(java.lang.Class<? extends T> type, java.io.File source) throws java.lang.Exception
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.read
in interface Serializer
type
- this is the class type to be deserialized from XMLsource
- this provides the source of the XML documentjava.lang.Exception
- if the object cannot be fully deserializedpublic <T> T read(java.lang.Class<? extends T> type, java.io.InputStream source) throws java.lang.Exception
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.read
in interface Serializer
type
- this is the class type to be deserialized from XMLsource
- this provides the source of the XML documentjava.lang.Exception
- if the object cannot be fully deserializedpublic <T> T read(java.lang.Class<? extends T> type, java.io.InputStream source, java.lang.String charset) throws java.lang.Exception
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.read
in interface Serializer
type
- this is the class type to be deserialized from XMLsource
- this provides the source of the XML documentcharset
- this is the character set to read the XML withjava.lang.Exception
- if the object cannot be fully deserializedpublic <T> T read(java.lang.Class<? extends T> type, java.io.Reader source) throws java.lang.Exception
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.read
in interface Serializer
type
- this is the class type to be deserialized from XMLsource
- this provides the source of the XML documentjava.lang.Exception
- if the object cannot be fully deserializedpublic <T> T read(java.lang.Class<? extends T> type, InputNode source) throws java.lang.Exception
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.type
- this is the class type to be deserialized from XMLsource
- this provides the source of the XML documentjava.lang.Exception
- if the object cannot be fully deserializedpublic void write(java.lang.Object source, OutputNode root) throws java.lang.Exception
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.source
- this is the object that is to be serializedroot
- this is where the serialized XML is written tojava.lang.Exception
- if the schema for the object is not validpublic void write(java.lang.Object source, java.io.File out) throws java.lang.Exception
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.write
in interface Serializer
source
- this is the object that is to be serializedout
- this is where the serialized XML is written tojava.lang.Exception
- if the schema for the object is not validpublic void write(java.lang.Object source, java.io.OutputStream out) throws java.lang.Exception
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.write
in interface Serializer
source
- this is the object that is to be serializedout
- this is where the serialized XML is written tojava.lang.Exception
- if the schema for the object is not validpublic void write(java.lang.Object source, java.io.OutputStream out, java.lang.String charset) throws java.lang.Exception
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.write
in interface Serializer
source
- this is the object that is to be serializedout
- this is where the serialized XML is written tocharset
- this is the character encoding to be usedjava.lang.Exception
- if the schema for the object is not validpublic void write(java.lang.Object source, java.io.Writer out) throws java.lang.Exception
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.write
in interface Serializer
source
- this is the object that is to be serializedout
- this is where the serialized XML is written tojava.lang.Exception
- if the schema for the object is not valid