## org.dom4j.jaxb
Class JAXBModifier

    java.lang.Object
      org.dom4j.jaxb.JAXBSupport
          org.dom4j.jaxb.JAXBModifier

public class JAXBModifier
extends org.dom4j.jaxb.JAXBSupport

Reads an XML document using SAX and writes its content to the provided `XMLWriter`. Modifications must be provided by `JAXBObjectModifier` objects, which are called prior to writing the XML fragment they are registered for.

Author:
  Wonne Keysers (Realsoftware.be)
See Also:
  `SAXModifier`

Constructor Summary
`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 given `ClassLoader`.
`JAXBModifier(String contextPath, ClassLoader classloader, OutputFormat outputFormat)` Creates a new JAXBModifier for the given JAXB context path, using the specified `Classloader`.
`JAXBModifier(String contextPath, OutputFormat outputFormat)` Creates a new JAXBModifier for the given JAXB context path.

Method Summary
`void` `addObjectModifier(String path, JAXBObjectModifier mod)` Adds the `JAXBObjectModifier`to be called when the specified xml path is encounted while parsing the source.
`boolean` `isPruneElements()` Returns true when the modified `Document`is not kept in memory.
`protected Element` `marshal(javax.xml.bind.Element element)` Marshals the given `Element`in to its DOM4J counterpart.
`Document` `modify(File source)` Parses the specified `File`with SAX
`Document` `modify(File source, java.nio.charset.Charset charset)` Parses the specified `File`with SAX, using the given `Charset`.
`Document` `modify(InputSource source)` Parses the specified `InputSource`with SAX.
`Document` `modify(InputStream source)` Parses the specified `InputStream`with SAX.
`Document` `modify(InputStream source, String systemId)` Parses the specified `InputStream`with SAX.
`Document` `modify(Reader r)` Parses the specified `Reader`with SAX.
`Document` `modify(Reader source, String systemId)` Parses the specified `Reader`with SAX.
`Document` `modify(String url)` Parses the the given URL or filename.
`Document` `modify(URL source)` Parses the the given URL.
`void` `removeObjectModifier(String path)` Removes the `JAXBObjectModifier`from the event based processor, for the specified element path.
`void` `resetObjectModifiers()` Removes all registered `JAXBObjectModifier`instances from the event based processor.
`void` `setOutput(File file)` Sets the Output to write the (modified) xml document to.
`void` `setOutput(OutputStream outputStream)` Sets the Output to write the (modified) xml document to.
`void` `setOutput(Writer writer)` Sets the Output to write the (modified) xml document to.
`void` `setPruneElements(boolean pruneElements)` Define whether the modified `Document`must only be written to the output and pruned from the DOM4J tree.
`protected javax.xml.bind.Element` `unmarshal(Element element)` Unmarshalls the specified DOM4J `Element`into a `Element`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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 given `ClassLoader`. 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
  `classloader` - 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 specified `OutputFormat`will be used while writing the XML stream.

Parameters:
  `contextPath` - JAXB context path to be used
  `outputFormat` - the DOM4J `OutputFormat`to 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 specified `Classloader`. The specified `OutputFormat` will be used while writing the XML stream.

Parameters:
  `contextPath` - JAXB context path to be used
  `classloader` - the class loader to be used to load JAXB
  `outputFormat` - the DOM4J `OutputFormat`to be used
See Also:
  `JAXBContext`

Method Detail

### modify

    public Document modify(File source)
                    throws DocumentException,
                           IOException

  Parses the specified `File`with SAX

  Parameters:
    `source` - the file to parse
  Returns:
    the resulting DOM4J document
  Throws:
    `DocumentException` - when an error occurs while parsing
    `IOException` - when an error occurs while writing to the `XMLWriter`

### modify

    public Document modify(File source,
                           java.nio.charset.Charset charset)
                    throws DocumentException,
                           IOException

  Parses the specified `File`with SAX, using the given `Charset`.

  Parameters:
    `source` - the file to parse
    `charset` - the character set to use
  Returns:
    the resulting DOM4J document
  Throws:
    `DocumentException` - when an error occurs while parsing
    `IOException` - when an error occurs while writing to the `XMLWriter`

### modify

    public Document modify(InputSource source)
                    throws DocumentException,
                           IOException

  Parses the specified `InputSource`with SAX.

  Parameters:
    `source` - the input source to parse
  Returns:
    the resulting DOM4J document
  Throws:
    `DocumentException` - when an error occurs while parsing
    `IOException` - when an error occurs while writing to the `XMLWriter`

### modify

    public Document modify(InputStream source)
                    throws DocumentException,
                           IOException

  Parses the specified `InputStream`with SAX.

  Parameters:
    `source` - the inputstream to parse
  Returns:
    the resulting DOM4J document
  Throws:
    `DocumentException` - when an error occurs while parsing
    `IOException` - when an error occurs while writing to the `XMLWriter`

### modify

    public Document modify(InputStream source,
                           String systemId)
                    throws DocumentException,
                           IOException

  Parses the specified `InputStream`with SAX.

  Parameters:
    `source` - the inputstream to parse
    `systemId` - the URI of the given inputstream
  Returns:
    the resulting DOM4J document
  Throws:
    `DocumentException` - when an error occurs while parsing
    `IOException` - when an error occurs while writing to the `XMLWriter`

### modify

    public Document modify(Reader r)
                    throws DocumentException,
                           IOException

  Parses the specified `Reader`with SAX.

  Parameters:
    `r` - the reader to use for parsing
  Returns:
    the resulting DOM4J document
  Throws:
    `DocumentException` - when an error occurs while parsing
    `IOException` - when an error occurs while writing to the `XMLWriter`

### modify

    public Document modify(Reader source,
                           String systemId)
                    throws DocumentException,
                           IOException

  Parses the specified `Reader`with SAX.

  Parameters:
    `source` - the reader to parse
    `systemId` - the URI of the given reader
  Returns:
    the resulting DOM4J document
  Throws:
    `DocumentException` - when an error occurs while parsing
    `IOException` - when an error occurs while writing to the `XMLWriter`

### 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 parsing
    `IOException` - when an error occurs while writing to the `XMLWriter`

### 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 parsing
    `IOException` - when an error occurs while writing to the `XMLWriter`

### setOutput

    public void setOutput(File file)
                   throws IOException

  Sets the Output to write the (modified) xml document to.

  Parameters:
    `file` - the `File`to 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` - the `OutputStream`to 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` - the `Writer`to write to
  Throws:
    `IOException` - when an error occurs

### addObjectModifier

    public void addObjectModifier(String path,
                                  JAXBObjectModifier mod)

  Adds the `JAXBObjectModifier`to be called when the specified xml path is encounted while parsing the source.

  Parameters:
    `path` - the element path to listen for
    `mod` - the modifier to register

### removeObjectModifier

    public void removeObjectModifier(String path)

  Removes the `JAXBObjectModifier`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 registered `JAXBObjectModifier`instances from the event based processor.

### isPruneElements

    public boolean isPruneElements()

  Returns true when the modified `Document`is not kept in memory.

  Returns:
    Returns true if elements are pruned.

### setPruneElements

    public void setPruneElements(boolean pruneElements)

  Define whether the modified `Document`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 given `Element`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 DOM4J `Element`into a `Element`

  Parameters:
    `element` - the DOM4J element to unmarshall
  Returns:
    the unmarshalled JAXB object
  Throws:
    `javax.xml.bind.JAXBException` - when an error occurs

Copyright © 2001-2005 MetaStuff Ltd.. All Rights Reserved.