public class JAXBMarshaller extends java.lang.Object implements Marshaller
Purpose:To Provide an implementation of the JAXB 2.0 Marshaller Interface
Responsibilities:
This implementation of the JAXB 2.1/2.2 Marshaller interface provides the required functionality by acting as a thin wrapper on the existing XMLMarshaller API.
Marshaller
,
MarshallerProperties
,
XMLMarshaller
Marshaller.Listener
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
XML_JAVATYPE_ADAPTERS |
JAXB_ENCODING, JAXB_FORMATTED_OUTPUT, JAXB_FRAGMENT, JAXB_NO_NAMESPACE_SCHEMA_LOCATION, JAXB_SCHEMA_LOCATION
Constructor and Description |
---|
JAXBMarshaller(XMLMarshaller newXMLMarshaller,
JAXBIntrospector newIntrospector)
This constructor initializes various settings on the XML marshaller, and
stores the provided JAXBIntrospector instance for usage in marshal()
calls.
|
Modifier and Type | Method and Description |
---|---|
XmlAdapter |
getAdapter(java.lang.Class javaClass)
Gets the adapter associated with the specified type.
|
AttachmentMarshaller |
getAttachmentMarshaller() |
ValidationEventHandler |
getEventHandler()
Return the current event handler or the default event handler if one
hasn't been set.
|
JAXBContext |
getJaxbContext() |
Marshaller.Listener |
getListener()
Return
Marshaller.Listener registered with this Marshaller . |
org.w3c.dom.Node |
getNode(java.lang.Object object)
Get a DOM tree view of the content tree(Optional).
|
java.lang.Object |
getProperty(java.lang.String key)
Get a property from the JAXBMarshaller.
|
javax.xml.validation.Schema |
getSchema()
Get the JAXP 1.3
Schema object
being used to perform marshal-time validation. |
XMLMarshaller |
getXMLMarshaller() |
void |
marshal(java.lang.Object object,
org.xml.sax.ContentHandler contentHandler)
Marshal the content tree rooted at jaxbElement into SAX2 events.
|
void |
marshal(java.lang.Object object,
java.io.File file)
Marshal the content tree rooted at jaxbElement into a file.
|
void |
marshal(java.lang.Object object,
MarshalRecord record) |
void |
marshal(java.lang.Object object,
MarshalRecord record,
TypeMappingInfo type) |
void |
marshal(java.lang.Object object,
org.w3c.dom.Node node)
Marshal the content tree rooted at jaxbElement into a DOM tree.
|
void |
marshal(java.lang.Object object,
java.io.OutputStream outputStream)
Marshal the content tree rooted at jaxbElement into an output stream.
|
void |
marshal(java.lang.Object object,
javax.xml.transform.Result result)
Marshal the content tree rooted at jaxbElement into the specified
javax.xml.transform.Result.
|
void |
marshal(java.lang.Object object,
javax.xml.transform.Result result,
TypeMappingInfo type) |
void |
marshal(java.lang.Object object,
java.io.Writer writer)
Marshal the content tree rooted at jaxbElement into a Writer.
|
void |
marshal(java.lang.Object object,
javax.xml.stream.XMLEventWriter eventWriter)
Marshal the content tree rooted at jaxbElement into a
XMLEventWriter . |
void |
marshal(java.lang.Object object,
javax.xml.stream.XMLEventWriter eventWriter,
TypeMappingInfo type) |
void |
marshal(java.lang.Object object,
javax.xml.stream.XMLStreamWriter streamWriter)
Marshal the content tree rooted at jaxbElement into a
XMLStreamWriter . |
void |
marshal(java.lang.Object object,
javax.xml.stream.XMLStreamWriter streamWriter,
TypeMappingInfo type) |
void |
setAdapter(java.lang.Class javaClass,
XmlAdapter adapter)
Associates a configured instance of
XmlAdapter with this marshaller. |
void |
setAdapter(XmlAdapter adapter)
Associates a configured instance of
XmlAdapter with this marshaller. |
void |
setAttachmentMarshaller(AttachmentMarshaller attachmentMarshaller)
Associate a context that enables binary data within an XML document
to be transmitted as XML-binary optimized attachment.
|
void |
setEventHandler(ValidationEventHandler newValidationEventHandler)
Allow an application to register a validation event handler.
|
void |
setJaxbContext(JAXBContext jaxbContext) |
void |
setListener(Marshaller.Listener listener)
Register marshal event callback
Marshaller.Listener with this Marshaller . |
void |
setMarshalCallbacks(java.util.HashMap callbacks) |
void |
setProperty(java.lang.String key,
java.lang.Object value)
Set a property on the JAXBMarshaller.
|
void |
setSchema(javax.xml.validation.Schema schema)
Specify the JAXP 1.3
Schema
object that should be used to validate subsequent marshal operations
against. |
public static final java.lang.String XML_JAVATYPE_ADAPTERS
public JAXBMarshaller(XMLMarshaller newXMLMarshaller, JAXBIntrospector newIntrospector)
newXMLMarshaller
- newIntrospector
- public XmlAdapter getAdapter(java.lang.Class javaClass)
Marshaller
Marshaller.setAdapter(javax.xml.bind.annotation.adapters.XmlAdapter)
method.getAdapter
in interface Marshaller
public AttachmentMarshaller getAttachmentMarshaller()
getAttachmentMarshaller
in interface Marshaller
public ValidationEventHandler getEventHandler() throws JAXBException
Marshaller
getEventHandler
in interface Marshaller
JAXBException
- if an error was encountered while getting the
current event handlerpublic Marshaller.Listener getListener()
Marshaller
Return Marshaller.Listener
registered with this Marshaller
.
getListener
in interface Marshaller
Marshaller.Listener
or null
if no Listener is registered with this Marshaller.public org.w3c.dom.Node getNode(java.lang.Object object) throws JAXBException
Marshaller
Marshaller.marshal(Object, org.w3c.dom.Node)
to force
a deep copy of the content tree to a DOM representation.getNode
in interface Marshaller
object
- - JAXB Java representation of XML contentJAXBException
- If any unexpected problem occurspublic java.lang.Object getProperty(java.lang.String key) throws PropertyException
getProperty
in interface Marshaller
key
- the name of the property to retrievePropertyException
- when there is an error retrieving the given property or value
property nameMarshallerProperties
public javax.xml.validation.Schema getSchema()
Marshaller
Schema
object
being used to perform marshal-time validation. If there is no
Schema set on the marshaller, then this method will return null
indicating that marshal-time validation will not be performed.getSchema
in interface Marshaller
public void marshal(java.lang.Object object, org.xml.sax.ContentHandler contentHandler) throws JAXBException
Marshaller
marshal
in interface Marshaller
object
- The root of content tree to be marshalled.contentHandler
- XML will be sent to this handler as SAX2 events.JAXBException
- If any unexpected problem occurs during the marshalling.MarshalException
- If the ValidationEventHandler
returns false from its handleEvent method or the
Marshaller is unable to marshal obj (or any
object reachable from obj). See
Marshalling a JAXB element.public void marshal(java.lang.Object object, javax.xml.stream.XMLEventWriter eventWriter) throws JAXBException
Marshaller
XMLEventWriter
.marshal
in interface Marshaller
object
- The content tree rooted at jaxbElement to be marshalled.eventWriter
- XML will be sent to this writer.JAXBException
- If any unexpected problem occurs during the marshalling.MarshalException
- If the ValidationEventHandler
returns false from its handleEvent method or the
Marshaller is unable to marshal obj (or any
object reachable from obj). See
Marshalling a JAXB element.public void marshal(java.lang.Object object, javax.xml.stream.XMLEventWriter eventWriter, TypeMappingInfo type) throws JAXBException
JAXBException
public void marshal(java.lang.Object object, org.w3c.dom.Node node) throws JAXBException
Marshaller
marshal
in interface Marshaller
object
- The content tree to be marshalled.node
- DOM nodes will be added as children of this node.
This parameter must be a Node that accepts children
(Document
,
DocumentFragment
, or
Element
)JAXBException
- If any unexpected problem occurs during the marshalling.MarshalException
- If the ValidationEventHandler
returns false from its handleEvent method or the
Marshaller is unable to marshal jaxbElement (or any
object reachable from jaxbElement). See
Marshalling a JAXB element.public void marshal(java.lang.Object object, java.io.OutputStream outputStream) throws JAXBException
Marshaller
marshal
in interface Marshaller
object
- The root of content tree to be marshalled.outputStream
- XML will be added to this stream.JAXBException
- If any unexpected problem occurs during the marshalling.MarshalException
- If the ValidationEventHandler
returns false from its handleEvent method or the
Marshaller is unable to marshal obj (or any
object reachable from obj). See
Marshalling a JAXB element.public void marshal(java.lang.Object object, java.io.File file) throws JAXBException
Marshaller
marshal
in interface Marshaller
object
- The root of content tree to be marshalled.file
- File to be written. If this file already exists, it will be overwritten.JAXBException
- If any unexpected problem occurs during the marshalling.MarshalException
- If the ValidationEventHandler
returns false from its handleEvent method or the
Marshaller is unable to marshal obj (or any
object reachable from obj). See
Marshalling a JAXB element.public void marshal(java.lang.Object object, javax.xml.transform.Result result) throws JAXBException
Marshaller
All JAXB Providers must at least support
DOMResult
,
SAXResult
, and
StreamResult
. It can
support other derived classes of Result as well.
marshal
in interface Marshaller
object
- The root of content tree to be marshalled.result
- XML will be sent to this ResultJAXBException
- If any unexpected problem occurs during the marshalling.MarshalException
- If the ValidationEventHandler
returns false from its handleEvent method or the
Marshaller is unable to marshal obj (or any
object reachable from obj). See
Marshalling a JAXB element.public void marshal(java.lang.Object object, javax.xml.transform.Result result, TypeMappingInfo type) throws JAXBException
JAXBException
public void marshal(java.lang.Object object, javax.xml.stream.XMLStreamWriter streamWriter) throws JAXBException
Marshaller
XMLStreamWriter
.marshal
in interface Marshaller
object
- The content tree to be marshalled.streamWriter
- XML will be sent to this writer.JAXBException
- If any unexpected problem occurs during the marshalling.MarshalException
- If the ValidationEventHandler
returns false from its handleEvent method or the
Marshaller is unable to marshal obj (or any
object reachable from obj). See
Marshalling a JAXB element.public void marshal(java.lang.Object object, javax.xml.stream.XMLStreamWriter streamWriter, TypeMappingInfo type) throws JAXBException
JAXBException
public void marshal(java.lang.Object object, java.io.Writer writer) throws JAXBException
Marshaller
marshal
in interface Marshaller
object
- The root of content tree to be marshalled.writer
- XML will be sent to this writer.JAXBException
- If any unexpected problem occurs during the marshalling.MarshalException
- If the ValidationEventHandler
returns false from its handleEvent method or the
Marshaller is unable to marshal obj (or any
object reachable from obj). See
Marshalling a JAXB element.public void marshal(java.lang.Object object, MarshalRecord record) throws JAXBException
JAXBException
public void marshal(java.lang.Object object, MarshalRecord record, TypeMappingInfo type) throws JAXBException
JAXBException
public void setAdapter(java.lang.Class javaClass, XmlAdapter adapter)
Marshaller
XmlAdapter
with this marshaller.
Every marshaller internally maintains a
Map
<Class
,XmlAdapter
>,
which it uses for marshalling classes whose fields/methods are annotated
with XmlJavaTypeAdapter
.
This method allows applications to use a configured instance of XmlAdapter
.
When an instance of an adapter is not given, a marshaller will create
one by invoking its default constructor.
setAdapter
in interface Marshaller
javaClass
- The type of the adapter. The specified instance will be used when
XmlJavaTypeAdapter.value()
refers to this type.adapter
- The instance of the adapter to be used. If null, it will un-register
the current adapter set for this type.public void setAdapter(XmlAdapter adapter)
Marshaller
XmlAdapter
with this marshaller.
This is a convenience method that invokes setAdapter(adapter.getClass(),adapter);
.
setAdapter
in interface Marshaller
Marshaller.setAdapter(Class,XmlAdapter)
public void setAttachmentMarshaller(AttachmentMarshaller attachmentMarshaller)
Marshaller
Associate a context that enables binary data within an XML document to be transmitted as XML-binary optimized attachment. The attachment is referenced from the XML document content model by content-id URIs(cid) references stored within the xml document.
setAttachmentMarshaller
in interface Marshaller
public void setEventHandler(ValidationEventHandler newValidationEventHandler) throws JAXBException
Marshaller
The validation event handler will be called by the JAXB Provider if any validation errors are encountered during calls to any of the marshal API's. If the client application does not register a validation event handler before invoking one of the marshal methods, then validation events will be handled by the default event handler which will terminate the marshal operation after the first error or fatal error is encountered.
Calling this method with a null parameter will cause the Marshaller to revert back to the default default event handler.
setEventHandler
in interface Marshaller
newValidationEventHandler
- the validation event handlerJAXBException
- if an error was encountered while setting the
event handlerpublic void setListener(Marshaller.Listener listener)
Marshaller
Register marshal event callback Marshaller.Listener
with this Marshaller
.
There is only one Listener per Marshaller. Setting a Listener replaces the previous set Listener. One can unregister current Listener by setting listener to null.
setListener
in interface Marshaller
listener
- an instance of a class that implements Marshaller.Listener
public void setMarshalCallbacks(java.util.HashMap callbacks)
public void setProperty(java.lang.String key, java.lang.Object value) throws PropertyException
setProperty
in interface Marshaller
key
- the name of the property to be set. This value can either
be specified using one of the constant fields or a user
supplied string.value
- the value of the property to be setPropertyException
- when there is an error processing the given
property or valueMarshallerProperties
public void setSchema(javax.xml.validation.Schema schema)
Marshaller
Schema
object that should be used to validate subsequent marshal operations
against. Passing null into this method will disable validation.
This method allows the caller to validate the marshalled XML as it's marshalled.
Initially this property is set to null.
setSchema
in interface Marshaller
schema
- Schema object to validate marshal operations against or null to disable validationpublic JAXBContext getJaxbContext()
public void setJaxbContext(JAXBContext jaxbContext)
public XMLMarshaller getXMLMarshaller()