|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.oxm.support.AbstractMarshaller
public abstract class AbstractMarshaller
Abstract implementation of the Marshaller
and Unmarshaller
interface.
This implementation inspects the given Source
or Result
, and defers
further handling to overridable template methods.
Field Summary | |
---|---|
protected Log |
logger
Logger available to subclasses. |
Constructor Summary | |
---|---|
AbstractMarshaller()
|
Method Summary | |
---|---|
protected DocumentBuilder |
createDocumentBuilder(DocumentBuilderFactory factory)
Create a DocumentBuilder that this marshaller will use for creating
DOM documents when passed an empty DOMSource . |
protected DocumentBuilderFactory |
createDocumentBuilderFactory()
Create a DocumentBuilder that this marshaller will use for creating
DOM documents when passed an empty DOMSource . |
protected XMLReader |
createXmlReader()
Create a XMLReader that this marshaller will when passed an empty SAXSource . |
void |
marshal(Object graph,
Result result)
Marshals the object graph with the given root into the provided javax.xml.transform.Result . |
protected abstract void |
marshalDomNode(Object graph,
Node node)
Abstract template method for marshalling the given object graph to a DOM Node . |
protected void |
marshalDomResult(Object graph,
DOMResult domResult)
Template method for handling DOMResult s. |
protected abstract void |
marshalOutputStream(Object graph,
OutputStream outputStream)
Abstract template method for marshalling the given object graph to a OutputStream . |
protected abstract void |
marshalSaxHandlers(Object graph,
ContentHandler contentHandler,
LexicalHandler lexicalHandler)
Abstract template method for marshalling the given object graph to a SAX ContentHandler . |
protected void |
marshalSaxResult(Object graph,
SAXResult saxResult)
Template method for handling SAXResult s. |
protected void |
marshalStaxResult(Object graph,
Result staxResult)
Template method for handling StaxResult s. |
protected void |
marshalStreamResult(Object graph,
StreamResult streamResult)
Template method for handling StreamResult s. |
protected abstract void |
marshalWriter(Object graph,
Writer writer)
Abstract template method for marshalling the given object graph to a Writer . |
protected abstract void |
marshalXmlEventWriter(Object graph,
XMLEventWriter eventWriter)
Abstract template method for marshalling the given object to a StAX XMLEventWriter . |
protected abstract void |
marshalXmlStreamWriter(Object graph,
XMLStreamWriter streamWriter)
Abstract template method for marshalling the given object to a StAX XMLStreamWriter . |
Object |
unmarshal(Source source)
Unmarshals the given provided javax.xml.transform.Source into an object graph. |
protected abstract Object |
unmarshalDomNode(Node node)
Abstract template method for unmarshalling from a given DOM Node . |
protected Object |
unmarshalDomSource(DOMSource domSource)
Template method for handling DOMSource s. |
protected abstract Object |
unmarshalInputStream(InputStream inputStream)
Abstract template method for unmarshalling from a given InputStream . |
protected abstract Object |
unmarshalReader(Reader reader)
Abstract template method for unmarshalling from a given Reader . |
protected abstract Object |
unmarshalSaxReader(XMLReader xmlReader,
InputSource inputSource)
Abstract template method for unmarshalling using a given SAX XMLReader
and InputSource . |
protected Object |
unmarshalSaxSource(SAXSource saxSource)
Template method for handling SAXSource s. |
protected Object |
unmarshalStaxSource(Source staxSource)
Template method for handling StaxSource s. |
protected Object |
unmarshalStreamSource(StreamSource streamSource)
Template method for handling StreamSource s. |
protected abstract Object |
unmarshalXmlEventReader(XMLEventReader eventReader)
Abstract template method for unmarshalling from a given Stax XMLEventReader . |
protected abstract Object |
unmarshalXmlStreamReader(XMLStreamReader streamReader)
Abstract template method for unmarshalling from a given Stax XMLStreamReader . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.springframework.oxm.Marshaller |
---|
supports |
Methods inherited from interface org.springframework.oxm.Unmarshaller |
---|
supports |
Field Detail |
---|
protected final Log logger
Constructor Detail |
---|
public AbstractMarshaller()
Method Detail |
---|
public final void marshal(Object graph, Result result) throws IOException, XmlMappingException
javax.xml.transform.Result
.
This implementation inspects the given result, and calls marshalDomResult
,
marshalSaxResult
, or marshalStreamResult
.
marshal
in interface Marshaller
graph
- the root of the object graph to marshalresult
- the result to marshal to
IOException
- if an I/O exception occurs
XmlMappingException
- if the given object cannot be marshalled to the result
IllegalArgumentException
- if result
if neither a DOMResult
,
a SAXResult
, nor a StreamResult
marshalDomResult(Object, javax.xml.transform.dom.DOMResult)
,
marshalSaxResult(Object, javax.xml.transform.sax.SAXResult)
,
marshalStreamResult(Object, javax.xml.transform.stream.StreamResult)
public final Object unmarshal(Source source) throws IOException, XmlMappingException
javax.xml.transform.Source
into an object graph.
This implementation inspects the given result, and calls unmarshalDomSource
,
unmarshalSaxSource
, or unmarshalStreamSource
.
unmarshal
in interface Unmarshaller
source
- the source to marshal from
IOException
- if an I/O Exception occurs
XmlMappingException
- if the given source cannot be mapped to an object
IllegalArgumentException
- if source
is neither a DOMSource
,
a SAXSource
, nor a StreamSource
unmarshalDomSource(javax.xml.transform.dom.DOMSource)
,
unmarshalSaxSource(javax.xml.transform.sax.SAXSource)
,
unmarshalStreamSource(javax.xml.transform.stream.StreamSource)
protected DocumentBuilder createDocumentBuilder(DocumentBuilderFactory factory) throws ParserConfigurationException
DocumentBuilder
that this marshaller will use for creating
DOM documents when passed an empty DOMSource
.
Can be overridden in subclasses, adding further initialization of the builder.
factory
- the DocumentBuilderFactory
that the DocumentBuilder should be created with
DocumentBuilder
ParserConfigurationException
- if thrown by JAXP methodsprotected DocumentBuilderFactory createDocumentBuilderFactory() throws ParserConfigurationException
DocumentBuilder
that this marshaller will use for creating
DOM documents when passed an empty DOMSource
.
The resulting DocumentBuilderFactory
is cached, so this method
will only be called once.
ParserConfigurationException
- if thrown by JAXP methodsprotected XMLReader createXmlReader() throws SAXException
XMLReader
that this marshaller will when passed an empty SAXSource
.
SAXException
- if thrown by JAXP methodsprotected void marshalDomResult(Object graph, DOMResult domResult) throws XmlMappingException
DOMResult
s.
This implementation delegates to marshalDomNode
.
graph
- the root of the object graph to marshaldomResult
- the DOMResult
XmlMappingException
- if the given object cannot be marshalled to the result
IllegalArgumentException
- if the domResult
is emptymarshalDomNode(Object, org.w3c.dom.Node)
protected void marshalStaxResult(Object graph, Result staxResult) throws XmlMappingException
StaxResult
s.
This implementation delegates to marshalXMLSteamWriter
or
marshalXMLEventConsumer
, depending on what is contained in the
StaxResult
.
graph
- the root of the object graph to marshalstaxResult
- a Spring StaxSource
or JAXP 1.4 StAXSource
XmlMappingException
- if the given object cannot be marshalled to the result
IllegalArgumentException
- if the domResult
is emptymarshalDomNode(Object,org.w3c.dom.Node)
protected void marshalSaxResult(Object graph, SAXResult saxResult) throws XmlMappingException
SAXResult
s.
This implementation delegates to marshalSaxHandlers
.
graph
- the root of the object graph to marshalsaxResult
- the SAXResult
XmlMappingException
- if the given object cannot be marshalled to the resultmarshalSaxHandlers(Object, org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler)
protected void marshalStreamResult(Object graph, StreamResult streamResult) throws XmlMappingException, IOException
StreamResult
s.
This implementation delegates to marshalOutputStream
or marshalWriter
,
depending on what is contained in the StreamResult
graph
- the root of the object graph to marshalstreamResult
- the StreamResult
IOException
- if an I/O Exception occurs
XmlMappingException
- if the given object cannot be marshalled to the result
IllegalArgumentException
- if streamResult
does neither
contain an OutputStream
nor a Writer
protected Object unmarshalDomSource(DOMSource domSource) throws XmlMappingException
DOMSource
s.
This implementation delegates to unmarshalDomNode
.
If the given source is empty, an empty source Document
will be created as a placeholder.
domSource
- the DOMSource
XmlMappingException
- if the given source cannot be mapped to an object
IllegalArgumentException
- if the domSource
is emptyunmarshalDomNode(org.w3c.dom.Node)
protected Object unmarshalStaxSource(Source staxSource) throws XmlMappingException
StaxSource
s.
This implementation delegates to unmarshalXmlStreamReader
or
unmarshalXmlEventReader
.
staxSource
- the StaxSource
XmlMappingException
- if the given source cannot be mapped to an objectprotected Object unmarshalSaxSource(SAXSource saxSource) throws XmlMappingException, IOException
SAXSource
s.
This implementation delegates to unmarshalSaxReader
.
saxSource
- the SAXSource
XmlMappingException
- if the given source cannot be mapped to an object
IOException
- if an I/O Exception occursunmarshalSaxReader(org.xml.sax.XMLReader, org.xml.sax.InputSource)
protected Object unmarshalStreamSource(StreamSource streamSource) throws XmlMappingException, IOException
StreamSource
s.
This implementation defers to unmarshalInputStream
or unmarshalReader
.
streamSource
- the StreamSource
IOException
- if an I/O exception occurs
XmlMappingException
- if the given source cannot be mapped to an objectprotected abstract void marshalDomNode(Object graph, Node node) throws XmlMappingException
Node
.
In practice, node is be a Document
node, a DocumentFragment
node,
or a Element
node. In other words, a node that accepts children.
graph
- the root of the object graph to marshalnode
- the DOM node that will contain the result tree
XmlMappingException
- if the given object cannot be marshalled to the DOM nodeDocument
,
DocumentFragment
,
Element
protected abstract void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) throws XmlMappingException
XMLEventWriter
.
graph
- the root of the object graph to marshaleventWriter
- the XMLEventWriter
to write to
XmlMappingException
- if the given object cannot be marshalled to the DOM nodeprotected abstract void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException
XMLStreamWriter
.
graph
- the root of the object graph to marshalstreamWriter
- the XMLStreamWriter
to write to
XmlMappingException
- if the given object cannot be marshalled to the DOM nodeprotected abstract void marshalOutputStream(Object graph, OutputStream outputStream) throws XmlMappingException, IOException
OutputStream
.
graph
- the root of the object graph to marshaloutputStream
- the OutputStream
to write to
XmlMappingException
- if the given object cannot be marshalled to the writer
IOException
- if an I/O exception occursprotected abstract void marshalSaxHandlers(Object graph, ContentHandler contentHandler, LexicalHandler lexicalHandler) throws XmlMappingException
ContentHandler
.
graph
- the root of the object graph to marshalcontentHandler
- the SAX ContentHandler
lexicalHandler
- the SAX2 LexicalHandler
. Can be null
.
XmlMappingException
- if the given object cannot be marshalled to the handlersprotected abstract void marshalWriter(Object graph, Writer writer) throws XmlMappingException, IOException
Writer
.
graph
- the root of the object graph to marshalwriter
- the Writer
to write to
XmlMappingException
- if the given object cannot be marshalled to the writer
IOException
- if an I/O exception occursprotected abstract Object unmarshalDomNode(Node node) throws XmlMappingException
Node
.
node
- the DOM node that contains the objects to be unmarshalled
XmlMappingException
- if the given DOM node cannot be mapped to an objectprotected abstract Object unmarshalXmlEventReader(XMLEventReader eventReader) throws XmlMappingException
XMLEventReader
.
eventReader
- the XMLEventReader
to read from
XmlMappingException
- if the given event reader cannot be converted to an objectprotected abstract Object unmarshalXmlStreamReader(XMLStreamReader streamReader) throws XmlMappingException
XMLStreamReader
.
streamReader
- the XMLStreamReader
to read from
XmlMappingException
- if the given stream reader cannot be converted to an objectprotected abstract Object unmarshalInputStream(InputStream inputStream) throws XmlMappingException, IOException
InputStream
.
inputStream
- the InputStreamStream
to read from
XmlMappingException
- if the given stream cannot be converted to an object
IOException
- if an I/O exception occursprotected abstract Object unmarshalReader(Reader reader) throws XmlMappingException, IOException
Reader
.
reader
- the Reader
to read from
XmlMappingException
- if the given reader cannot be converted to an object
IOException
- if an I/O exception occursprotected abstract Object unmarshalSaxReader(XMLReader xmlReader, InputSource inputSource) throws XmlMappingException, IOException
XMLReader
and InputSource
.
xmlReader
- the SAX XMLReader
to parse withinputSource
- the input source to parse from
XmlMappingException
- if the given reader and input source cannot be converted to an object
IOException
- if an I/O exception occurs
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |