|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.oxm.support.AbstractMarshaller
org.springframework.oxm.jibx.JibxMarshaller
public class JibxMarshaller
Implementation of the Marshaller
and Unmarshaller
interfaces for JiBX.
The typical usage will be to set the targetClass
and optionally the
bindingName
property on this bean.
org.jibx.runtime.IMarshallingContext
,
org.jibx.runtime.IUnmarshallingContext
Field Summary | |
---|---|
private IBindingFactory |
bindingFactory
|
private java.lang.String |
bindingName
|
private java.lang.String |
docTypeInternalSubset
|
private java.lang.String |
docTypePublicId
|
private java.lang.String |
docTypeRootElementName
|
private java.lang.String |
docTypeSystemId
|
private java.lang.String |
encoding
|
private int |
indent
|
private java.lang.Boolean |
standalone
|
private java.lang.Class<?> |
targetClass
|
private javax.xml.transform.TransformerFactory |
transformerFactory
|
Fields inherited from class org.springframework.oxm.support.AbstractMarshaller |
---|
logger |
Constructor Summary | |
---|---|
JibxMarshaller()
|
Method Summary | |
---|---|
void |
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware). |
XmlMappingException |
convertJibxException(JiBXException ex,
boolean marshalling)
Convert the given JiBXException to an appropriate exception from the
org.springframework.oxm hierarchy. |
protected IMarshallingContext |
createMarshallingContext()
Create a new IMarshallingContext , configured with the correct indentation. |
protected IUnmarshallingContext |
createUnmarshallingContext()
Create a new IUnmarshallingContext . |
private void |
marshalDocument(IMarshallingContext marshallingContext,
java.lang.Object graph)
|
protected void |
marshalDomNode(java.lang.Object graph,
org.w3c.dom.Node node)
Abstract template method for marshalling the given object graph to a DOM Node . |
protected void |
marshalOutputStream(java.lang.Object graph,
java.io.OutputStream outputStream)
Abstract template method for marshalling the given object graph to a OutputStream . |
protected void |
marshalSaxHandlers(java.lang.Object graph,
org.xml.sax.ContentHandler contentHandler,
org.xml.sax.ext.LexicalHandler lexicalHandler)
Abstract template method for marshalling the given object graph to a SAX ContentHandler . |
protected void |
marshalWriter(java.lang.Object graph,
java.io.Writer writer)
Abstract template method for marshalling the given object graph to a Writer . |
protected void |
marshalXmlEventWriter(java.lang.Object graph,
javax.xml.stream.XMLEventWriter eventWriter)
Abstract template method for marshalling the given object to a StAX XMLEventWriter . |
protected void |
marshalXmlStreamWriter(java.lang.Object graph,
javax.xml.stream.XMLStreamWriter streamWriter)
Abstract template method for marshalling the given object to a StAX XMLStreamWriter . |
void |
setBindingName(java.lang.String bindingName)
Set the optional binding name for this instance. |
void |
setDocTypeInternalSubset(java.lang.String docTypeInternalSubset)
Sets the internal subset Id for the DTD declaration written when marshalling. |
void |
setDocTypePublicId(java.lang.String docTypePublicId)
Sets the public Id for the DTD declaration written when marshalling. |
void |
setDocTypeRootElementName(java.lang.String docTypeRootElementName)
Sets the root element name for the DTD declaration written when marshalling. |
void |
setDocTypeSystemId(java.lang.String docTypeSystemId)
Sets the system Id for the DTD declaration written when marshalling. |
void |
setEncoding(java.lang.String encoding)
Set the document encoding using for marshalling. |
void |
setIndent(int indent)
Set the number of nesting indent spaces. |
void |
setStandalone(java.lang.Boolean standalone)
Set the document standalone flag for marshalling. |
void |
setTargetClass(java.lang.Class<?> targetClass)
Set the target class for this instance. |
boolean |
supports(java.lang.Class<?> clazz)
Indicates whether this marshaller can marshal instances of the supplied type. |
private void |
transformAndMarshal(java.lang.Object graph,
javax.xml.transform.Result result)
|
private java.lang.Object |
transformAndUnmarshal(javax.xml.transform.Source source)
|
protected java.lang.Object |
unmarshalDomNode(org.w3c.dom.Node node)
Abstract template method for unmarshalling from a given DOM Node . |
protected java.lang.Object |
unmarshalInputStream(java.io.InputStream inputStream)
Abstract template method for unmarshalling from a given InputStream . |
protected java.lang.Object |
unmarshalReader(java.io.Reader reader)
Abstract template method for unmarshalling from a given Reader . |
protected java.lang.Object |
unmarshalSaxReader(org.xml.sax.XMLReader xmlReader,
org.xml.sax.InputSource inputSource)
Abstract template method for unmarshalling using a given SAX XMLReader
and InputSource . |
protected java.lang.Object |
unmarshalXmlEventReader(javax.xml.stream.XMLEventReader eventReader)
Abstract template method for unmarshalling from a given Stax XMLEventReader . |
protected java.lang.Object |
unmarshalXmlStreamReader(javax.xml.stream.XMLStreamReader streamReader)
Abstract template method for unmarshalling from a given Stax XMLStreamReader . |
Methods inherited from class org.springframework.oxm.support.AbstractMarshaller |
---|
createDocumentBuilder, createDocumentBuilderFactory, createXmlReader, marshal, marshalDomResult, marshalSaxResult, marshalStaxResult, marshalStreamResult, unmarshal, unmarshalDomSource, unmarshalSaxSource, unmarshalStaxSource, unmarshalStreamSource |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.lang.Class<?> targetClass
private java.lang.String bindingName
private int indent
private java.lang.String encoding
private java.lang.Boolean standalone
private java.lang.String docTypeRootElementName
private java.lang.String docTypeSystemId
private java.lang.String docTypePublicId
private java.lang.String docTypeInternalSubset
private IBindingFactory bindingFactory
private javax.xml.transform.TransformerFactory transformerFactory
Constructor Detail |
---|
public JibxMarshaller()
Method Detail |
---|
public void setTargetClass(java.lang.Class<?> targetClass)
public void setBindingName(java.lang.String bindingName)
public void setIndent(int indent)
-1
, i.e. no indentation.
public void setEncoding(java.lang.String encoding)
public void setStandalone(java.lang.Boolean standalone)
public void setDocTypeRootElementName(java.lang.String docTypeRootElementName)
null
(i.e. no DTD declaration is written). If set to a value, the system ID or public ID also need to
be set.
setDocTypeSystemId(String)
,
setDocTypePublicId(String)
public void setDocTypeSystemId(java.lang.String docTypeSystemId)
null
. Only used when the root element also has been set. Set either this property or
docTypePublicId
, not both.
setDocTypeRootElementName(String)
public void setDocTypePublicId(java.lang.String docTypePublicId)
null
. Only used when the root element also has been set. Set either this property or
docTypeSystemId
, not both.
setDocTypeRootElementName(String)
public void setDocTypeInternalSubset(java.lang.String docTypeInternalSubset)
null
. Only used when the root element also has been set.
setDocTypeRootElementName(String)
public void afterPropertiesSet() throws JiBXException
InitializingBean
This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.
afterPropertiesSet
in interface InitializingBean
JiBXException
public boolean supports(java.lang.Class<?> clazz)
Marshaller
supports
in interface Marshaller
supports
in interface Unmarshaller
clazz
- the class that this marshaller is being asked if it can marshal
true
if this marshaller can indeed marshal instances of the supplied class;
false
otherwiseprotected void marshalOutputStream(java.lang.Object graph, java.io.OutputStream outputStream) throws XmlMappingException, java.io.IOException
AbstractMarshaller
OutputStream
.
marshalOutputStream
in class AbstractMarshaller
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
java.io.IOException
- if an I/O exception occursprotected void marshalWriter(java.lang.Object graph, java.io.Writer writer) throws XmlMappingException, java.io.IOException
AbstractMarshaller
Writer
.
marshalWriter
in class AbstractMarshaller
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
java.io.IOException
- if an I/O exception occursprivate void marshalDocument(IMarshallingContext marshallingContext, java.lang.Object graph) throws java.io.IOException, JiBXException
java.io.IOException
JiBXException
protected void marshalXmlStreamWriter(java.lang.Object graph, javax.xml.stream.XMLStreamWriter streamWriter) throws XmlMappingException
AbstractMarshaller
XMLStreamWriter
.
marshalXmlStreamWriter
in class AbstractMarshaller
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 void marshalDomNode(java.lang.Object graph, org.w3c.dom.Node node) throws XmlMappingException
AbstractMarshaller
Node
.
In practice, node is be a Document
node, a DocumentFragment
node,
or a Element
node. In other words, a node that accepts children.
marshalDomNode
in class AbstractMarshaller
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 void marshalSaxHandlers(java.lang.Object graph, org.xml.sax.ContentHandler contentHandler, org.xml.sax.ext.LexicalHandler lexicalHandler) throws XmlMappingException
AbstractMarshaller
ContentHandler
.
marshalSaxHandlers
in class AbstractMarshaller
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 handlersprivate void transformAndMarshal(java.lang.Object graph, javax.xml.transform.Result result) throws java.io.IOException
java.io.IOException
protected void marshalXmlEventWriter(java.lang.Object graph, javax.xml.stream.XMLEventWriter eventWriter)
AbstractMarshaller
XMLEventWriter
.
marshalXmlEventWriter
in class AbstractMarshaller
graph
- the root of the object graph to marshaleventWriter
- the XMLEventWriter
to write toprotected java.lang.Object unmarshalInputStream(java.io.InputStream inputStream) throws XmlMappingException, java.io.IOException
AbstractMarshaller
InputStream
.
unmarshalInputStream
in class AbstractMarshaller
inputStream
- the InputStreamStream
to read from
XmlMappingException
- if the given stream cannot be converted to an object
java.io.IOException
- if an I/O exception occursprotected java.lang.Object unmarshalReader(java.io.Reader reader) throws XmlMappingException, java.io.IOException
AbstractMarshaller
Reader
.
unmarshalReader
in class AbstractMarshaller
reader
- the Reader
to read from
XmlMappingException
- if the given reader cannot be converted to an object
java.io.IOException
- if an I/O exception occursprotected java.lang.Object unmarshalXmlStreamReader(javax.xml.stream.XMLStreamReader streamReader)
AbstractMarshaller
XMLStreamReader
.
unmarshalXmlStreamReader
in class AbstractMarshaller
streamReader
- the XMLStreamReader
to read from
protected java.lang.Object unmarshalXmlEventReader(javax.xml.stream.XMLEventReader eventReader)
AbstractMarshaller
XMLEventReader
.
unmarshalXmlEventReader
in class AbstractMarshaller
eventReader
- the XMLEventReader
to read from
protected java.lang.Object unmarshalDomNode(org.w3c.dom.Node node) throws XmlMappingException
AbstractMarshaller
Node
.
unmarshalDomNode
in class AbstractMarshaller
node
- the DOM node that contains the objects to be unmarshalled
XmlMappingException
- if the given DOM node cannot be mapped to an objectprotected java.lang.Object unmarshalSaxReader(org.xml.sax.XMLReader xmlReader, org.xml.sax.InputSource inputSource) throws XmlMappingException, java.io.IOException
AbstractMarshaller
XMLReader
and InputSource
.
unmarshalSaxReader
in class AbstractMarshaller
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
java.io.IOException
- if an I/O exception occursprivate java.lang.Object transformAndUnmarshal(javax.xml.transform.Source source) throws java.io.IOException
java.io.IOException
protected IMarshallingContext createMarshallingContext() throws JiBXException
IMarshallingContext
, configured with the correct indentation.
JiBXException
- in case of errorsprotected IUnmarshallingContext createUnmarshallingContext() throws JiBXException
IUnmarshallingContext
.
JiBXException
- in case of errorspublic XmlMappingException convertJibxException(JiBXException ex, boolean marshalling)
JiBXException
to an appropriate exception from the
org.springframework.oxm
hierarchy.
A boolean flag is used to indicate whether this exception occurs during marshalling or unmarshalling, since JiBX itself does not make this distinction in its exception hierarchy.
ex
- JiBXException
that occuredmarshalling
- indicates whether the exception occurs during marshalling (true
),
or unmarshalling (false
)
XmlMappingException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |