Package org.dom4j.jaxb
Class JAXBModifier
- java.lang.Object
-
- org.dom4j.jaxb.JAXBModifier
-
public class JAXBModifier extends Object
Reads an XML document using SAX and writes its content to the providedXMLWriter. Modifications must be provided byJAXBObjectModifierobjects, which are called prior to writing the XML fragment they are registered for.- See Also:
SAXModifier
-
-
Constructor Summary
Constructors Constructor Description JAXBModifier(String contextPath)Creates a new JAXBModifier for the given JAXB context path.JAXBModifier(String contextPath, ClassLoader classloader)Creates a new JAXBModifier for the given JAXB context path, using the givenClassLoader.JAXBModifier(String contextPath, ClassLoader classloader, OutputFormat outputFormat)Creates a new JAXBModifier for the given JAXB context path, using the specifiedClassLoader.JAXBModifier(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 voidaddObjectModifier(String path, JAXBObjectModifier mod)Adds theJAXBObjectModifierto be called when the specified xml path is encounted while parsing the source.booleanisPruneElements()Returns true when the modifiedDocumentis not kept in memory.protected Elementmarshal(javax.xml.bind.Element element)Marshals the givenElementin to its DOM4J counterpart.Documentmodify(File source)Parses the specifiedFilewith SAXDocumentmodify(File source, Charset charset)Documentmodify(InputStream source)Parses the specifiedInputStreamwith SAX.Documentmodify(InputStream source, String systemId)Parses the specifiedInputStreamwith SAX.Documentmodify(Reader r)Parses the specifiedReaderwith SAX.Documentmodify(Reader source, String systemId)Parses the specifiedReaderwith SAX.Documentmodify(String url)Parses the the given URL or filename.Documentmodify(URL source)Parses the the given URL.Documentmodify(InputSource source)Parses the specifiedInputSourcewith SAX.voidremoveObjectModifier(String path)Removes theJAXBObjectModifierfrom the event based processor, for the specified element path.voidresetObjectModifiers()Removes all registeredJAXBObjectModifierinstances from the event based processor.voidsetOutput(File file)Sets the Output to write the (modified) xml document to.voidsetOutput(OutputStream outputStream)Sets the Output to write the (modified) xml document to.voidsetOutput(Writer writer)Sets the Output to write the (modified) xml document to.voidsetPruneElements(boolean pruneElements)Define whether the modifiedDocumentmust only be written to the output and pruned from the DOM4J tree.protected javax.xml.bind.Elementunmarshal(Element element)Unmarshalls the specified DOM4JElementinto aElement
-
-
-
Constructor Detail
-
JAXBModifier
public JAXBModifier(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(String contextPath, 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(String contextPath, OutputFormat outputFormat)
Creates a new JAXBModifier for the given JAXB context path. The specifiedOutputFormatwill be used while writing the XML stream.- Parameters:
contextPath- JAXB context path to be usedoutputFormat- the DOM4JOutputFormatto be used- See Also:
JAXBContext
-
JAXBModifier
public JAXBModifier(String contextPath, ClassLoader classloader, OutputFormat outputFormat)
Creates a new JAXBModifier for the given JAXB context path, using the specifiedClassLoader. The specifiedOutputFormatwill 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 DOM4JOutputFormatto be used- See Also:
JAXBContext
-
-
Method Detail
-
modify
public Document modify(File source) throws DocumentException, IOException
Parses the specifiedFilewith SAX- Parameters:
source- the file to parse- Returns:
- the resulting DOM4J document
- Throws:
DocumentException- when an error occurs while parsingIOException- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(File source, Charset charset) throws DocumentException, IOException
- Parameters:
source- the file to parsecharset- the character set to use- Returns:
- the resulting DOM4J document
- Throws:
DocumentException- when an error occurs while parsingIOException- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(InputSource source) throws DocumentException, IOException
Parses the specifiedInputSourcewith SAX.- Parameters:
source- the input source to parse- Returns:
- the resulting DOM4J document
- Throws:
DocumentException- when an error occurs while parsingIOException- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(InputStream source) throws DocumentException, IOException
Parses the specifiedInputStreamwith SAX.- Parameters:
source- the inputstream to parse- Returns:
- the resulting DOM4J document
- Throws:
DocumentException- when an error occurs while parsingIOException- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(InputStream source, String systemId) throws DocumentException, IOException
Parses the specifiedInputStreamwith 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 parsingIOException- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(Reader r) throws DocumentException, IOException
Parses the specifiedReaderwith SAX.- Parameters:
r- the reader to use for parsing- Returns:
- the resulting DOM4J document
- Throws:
DocumentException- when an error occurs while parsingIOException- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(Reader source, String systemId) throws DocumentException, IOException
Parses the specifiedReaderwith 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 parsingIOException- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(String url) throws DocumentException, 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 parsingIOException- when an error occurs while writing to theXMLWriter
-
modify
public Document modify(URL source) throws DocumentException, IOException
Parses the the given URL.- Parameters:
source- the URL to parse- Returns:
- the resulting DOM4J document
- Throws:
DocumentException- when an error occurs while parsingIOException- when an error occurs while writing to theXMLWriter
-
setOutput
public void setOutput(File file) throws IOException
Sets the Output to write the (modified) xml document to.- Parameters:
file- theFileto write to- Throws:
IOException- when the file cannot be found or when the outputformat
-
setOutput
public void setOutput(OutputStream outputStream) throws IOException
Sets the Output to write the (modified) xml document to.- Parameters:
outputStream- theOutputStreamto write to- Throws:
IOException- when an error occurs
-
setOutput
public void setOutput(Writer writer) throws IOException
Sets the Output to write the (modified) xml document to.- Parameters:
writer- theWriterto write to- Throws:
IOException- when an error occurs
-
addObjectModifier
public void addObjectModifier(String path, JAXBObjectModifier mod)
Adds theJAXBObjectModifierto 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(String path)
Removes theJAXBObjectModifierfrom 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 registeredJAXBObjectModifierinstances from the event based processor.
-
isPruneElements
public boolean isPruneElements()
Returns true when the modifiedDocumentis not kept in memory.- Returns:
- Returns true if elements are pruned.
-
setPruneElements
public void setPruneElements(boolean pruneElements)
Define whether the modifiedDocumentmust 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 givenElementin 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 DOM4JElementinto aElement- Parameters:
element- the DOM4J element to unmarshall- Returns:
- the unmarshalled JAXB object
- Throws:
javax.xml.bind.JAXBException- when an error occurs
-
-