Package org.dom4j.jaxb
Class JAXBModifier
- java.lang.Object
-
- org.dom4j.jaxb.JAXBModifier
-
public class JAXBModifier extends java.lang.Object
Reads an XML document using SAX and writes its content to the providedXMLWriter
. Modifications must be provided byJAXBObjectModifier
objects, which are called prior to writing the XML fragment they are registered for.- See Also:
SAXModifier
-
-
Constructor Summary
Constructors Constructor Description JAXBModifier(java.lang.String contextPath)
Creates a new JAXBModifier for the given JAXB context path.JAXBModifier(java.lang.String contextPath, java.lang.ClassLoader classloader)
Creates a new JAXBModifier for the given JAXB context path, using the givenClassLoader
.JAXBModifier(java.lang.String contextPath, java.lang.ClassLoader classloader, OutputFormat outputFormat)
Creates a new JAXBModifier for the given JAXB context path, using the specifiedClassLoader
.JAXBModifier(java.lang.String contextPath, OutputFormat outputFormat)
Creates a new JAXBModifier for the given JAXB context path.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addObjectModifier(java.lang.String path, JAXBObjectModifier mod)
Adds theJAXBObjectModifier
to be called when the specified xml path is encounted while parsing the source.boolean
isPruneElements()
Returns true when the modifiedDocument
is not kept in memory.protected Element
marshal(javax.xml.bind.Element element)
Marshals the givenElement
in to its DOM4J counterpart.Document
modify(java.io.File source)
Parses the specifiedFile
with SAXDocument
modify(java.io.File source, java.nio.charset.Charset charset)
Parses the specifiedFile
with SAX, using the givenCharset
.Document
modify(java.io.InputStream source)
Parses the specifiedInputStream
with SAX.Document
modify(java.io.InputStream source, java.lang.String systemId)
Parses the specifiedInputStream
with SAX.Document
modify(java.io.Reader r)
Parses the specifiedReader
with SAX.Document
modify(java.io.Reader source, java.lang.String systemId)
Parses the specifiedReader
with SAX.Document
modify(java.lang.String url)
Parses the the given URL or filename.Document
modify(java.net.URL source)
Parses the the given URL.Document
modify(org.xml.sax.InputSource source)
Parses the specifiedInputSource
with SAX.void
removeObjectModifier(java.lang.String path)
Removes theJAXBObjectModifier
from the event based processor, for the specified element path.void
resetObjectModifiers()
Removes all registeredJAXBObjectModifier
instances from the event based processor.void
setOutput(java.io.File file)
Sets the Output to write the (modified) xml document to.void
setOutput(java.io.OutputStream outputStream)
Sets the Output to write the (modified) xml document to.void
setOutput(java.io.Writer writer)
Sets the Output to write the (modified) xml document to.void
setPruneElements(boolean pruneElements)
Define whether the modifiedDocument
must only be written to the output and pruned from the DOM4J tree.protected javax.xml.bind.Element
unmarshal(Element element)
Unmarshalls the specified DOM4JElement
into aElement
-
-
-
Constructor Detail
-
JAXBModifier
public JAXBModifier(java.lang.String contextPath)
Creates a new JAXBModifier for the given JAXB context path. This is the Java package where JAXB can find the generated XML classes. This package MUST contain jaxb.properties!- Parameters:
contextPath
- JAXB context path to be used- See Also:
JAXBContext
-
JAXBModifier
public JAXBModifier(java.lang.String contextPath, java.lang.ClassLoader classloader)
Creates a new JAXBModifier for the given JAXB context path, using the givenClassLoader
. This is the Java package where JAXB can find the generated XML classes. This package MUST contain jaxb.properties!- Parameters:
contextPath
- JAXB context path to be usedclassloader
- the classloader to use- See Also:
JAXBContext
-
JAXBModifier
public JAXBModifier(java.lang.String contextPath, OutputFormat outputFormat)
Creates a new JAXBModifier for the given JAXB context path. The specifiedOutputFormat
will be used while writing the XML stream.- Parameters:
contextPath
- JAXB context path to be usedoutputFormat
- the DOM4JOutputFormat
to be used- See Also:
JAXBContext
-
JAXBModifier
public JAXBModifier(java.lang.String contextPath, java.lang.ClassLoader classloader, OutputFormat outputFormat)
Creates a new JAXBModifier for the given JAXB context path, using the specifiedClassLoader
. The specifiedOutputFormat
will be used while writing the XML stream.- Parameters:
contextPath
- JAXB context path to be usedclassloader
- the class loader to be used to load JAXBoutputFormat
- the DOM4JOutputFormat
to be used- See Also:
JAXBContext
-
-
Method Detail
-
modify
public Document modify(java.io.File source) throws DocumentException, java.io.IOException
Parses the specifiedFile
with SAX- Parameters:
source
- the file to parse- Returns:
- the resulting DOM4J document
- Throws:
DocumentException
- when an error occurs while parsingjava.io.IOException
- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(java.io.File source, java.nio.charset.Charset charset) throws DocumentException, java.io.IOException
Parses the specifiedFile
with SAX, using the givenCharset
.- Parameters:
source
- the file to parsecharset
- the character set to use- Returns:
- the resulting DOM4J document
- Throws:
DocumentException
- when an error occurs while parsingjava.io.IOException
- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(org.xml.sax.InputSource source) throws DocumentException, java.io.IOException
Parses the specifiedInputSource
with SAX.- Parameters:
source
- the input source to parse- Returns:
- the resulting DOM4J document
- Throws:
DocumentException
- when an error occurs while parsingjava.io.IOException
- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(java.io.InputStream source) throws DocumentException, java.io.IOException
Parses the specifiedInputStream
with SAX.- Parameters:
source
- the inputstream to parse- Returns:
- the resulting DOM4J document
- Throws:
DocumentException
- when an error occurs while parsingjava.io.IOException
- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(java.io.InputStream source, java.lang.String systemId) throws DocumentException, java.io.IOException
Parses the specifiedInputStream
with SAX.- Parameters:
source
- the inputstream to parsesystemId
- the URI of the given inputstream- Returns:
- the resulting DOM4J document
- Throws:
DocumentException
- when an error occurs while parsingjava.io.IOException
- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(java.io.Reader r) throws DocumentException, java.io.IOException
Parses the specifiedReader
with SAX.- Parameters:
r
- the reader to use for parsing- Returns:
- the resulting DOM4J document
- Throws:
DocumentException
- when an error occurs while parsingjava.io.IOException
- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(java.io.Reader source, java.lang.String systemId) throws DocumentException, java.io.IOException
Parses the specifiedReader
with SAX.- Parameters:
source
- the reader to parsesystemId
- the URI of the given reader- Returns:
- the resulting DOM4J document
- Throws:
DocumentException
- when an error occurs while parsingjava.io.IOException
- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(java.lang.String url) throws DocumentException, java.io.IOException
Parses the the given URL or filename.- Parameters:
url
- the URL or filename to parse- Returns:
- the resulting DOM4J document
- Throws:
DocumentException
- when an error occurs while parsingjava.io.IOException
- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(java.net.URL source) throws DocumentException, java.io.IOException
Parses the the given URL.- Parameters:
source
- the URL to parse- Returns:
- the resulting DOM4J document
- Throws:
DocumentException
- when an error occurs while parsingjava.io.IOException
- when an error occurs while writing to theXMLWriter
-
setOutput
public void setOutput(java.io.File file) throws java.io.IOException
Sets the Output to write the (modified) xml document to.- Parameters:
file
- theFile
to write to- Throws:
java.io.IOException
- when the file cannot be found or when the outputformat
-
setOutput
public void setOutput(java.io.OutputStream outputStream) throws java.io.IOException
Sets the Output to write the (modified) xml document to.- Parameters:
outputStream
- theOutputStream
to write to- Throws:
java.io.IOException
- when an error occurs
-
setOutput
public void setOutput(java.io.Writer writer) throws java.io.IOException
Sets the Output to write the (modified) xml document to.- Parameters:
writer
- theWriter
to write to- Throws:
java.io.IOException
- when an error occurs
-
addObjectModifier
public void addObjectModifier(java.lang.String path, JAXBObjectModifier mod)
Adds theJAXBObjectModifier
to be called when the specified xml path is encounted while parsing the source.- Parameters:
path
- the element path to listen formod
- the modifier to register
-
removeObjectModifier
public void removeObjectModifier(java.lang.String path)
Removes theJAXBObjectModifier
from the event based processor, for the specified element path.- Parameters:
path
- the xml path to remove the modifier for
-
resetObjectModifiers
public void resetObjectModifiers()
Removes all registeredJAXBObjectModifier
instances from the event based processor.
-
isPruneElements
public boolean isPruneElements()
Returns true when the modifiedDocument
is not kept in memory.- Returns:
- Returns true if elements are pruned.
-
setPruneElements
public void setPruneElements(boolean pruneElements)
Define whether the modifiedDocument
must only be written to the output and pruned from the DOM4J tree.- Parameters:
pruneElements
- When true, elements will not be kept in memory
-
marshal
protected Element marshal(javax.xml.bind.Element element) throws javax.xml.bind.JAXBException
Marshals the givenElement
in to its DOM4J counterpart.- Parameters:
element
- JAXB Element to be marshalled- Returns:
- the marshalled DOM4J
Element
- Throws:
javax.xml.bind.JAXBException
- when an error occurs
-
unmarshal
protected javax.xml.bind.Element unmarshal(Element element) throws javax.xml.bind.JAXBException
Unmarshalls the specified DOM4JElement
into aElement
- Parameters:
element
- the DOM4J element to unmarshall- Returns:
- the unmarshalled JAXB object
- Throws:
javax.xml.bind.JAXBException
- when an error occurs
-
-