Clover coverage report - dom4j - 1.6.1
Coverage timestamp: ma mei 16 2005 14:23:01 GMT+01:00
file stats: LOC: 326   Methods: 17
NCLOC: 80   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
JAXBWriter.java 0% 0% 0% 0%
coverage
 1    /*
 2    * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.
 3    *
 4    * This software is open source.
 5    * See the bottom of this file for the licence.
 6    */
 7   
 8    package org.dom4j.jaxb;
 9   
 10    import java.io.File;
 11    import java.io.FileOutputStream;
 12    import java.io.IOException;
 13    import java.io.OutputStream;
 14    import java.io.Writer;
 15   
 16    import javax.xml.bind.JAXBException;
 17   
 18    import org.dom4j.Element;
 19    import org.dom4j.io.OutputFormat;
 20    import org.dom4j.io.XMLWriter;
 21   
 22    import org.xml.sax.SAXException;
 23   
 24    /**
 25    * Writes {@link javax.xml.bind.Element}objects to an XML stream. {@link
 26    * javax.xml.bind.Element} instances can be created using the ObjectFactory that
 27    * is generated by the JAXB compiler.
 28    *
 29    * @author Wonne Keysers (Realsoftware.be)
 30    *
 31    * @see org.dom4j.io.XMLWriter
 32    * @see javax.xml.bind.JAXBContext
 33    */
 34    public class JAXBWriter extends JAXBSupport {
 35    private XMLWriter xmlWriter;
 36   
 37    private OutputFormat outputFormat;
 38   
 39    /**
 40    * Creates a new JAXBWriter for the given JAXB context path. This is the
 41    * Java package where JAXB can find the generated XML classes. This package
 42    * MUST contain jaxb.properties!
 43    *
 44    * @param contextPath
 45    * JAXB context path to be used
 46    *
 47    * @see javax.xml.bind.JAXBContext
 48    */
 49  0 public JAXBWriter(String contextPath) {
 50  0 super(contextPath);
 51  0 outputFormat = new OutputFormat();
 52    }
 53   
 54    /**
 55    * Creates a new JAXBWriter for the given JAXB context path. The specied
 56    * {@link org.dom4j.io.OutputFormat}will be used for writing the XML
 57    * stream.
 58    *
 59    * @param contextPath
 60    * JAXB context path to be used
 61    * @param outputFormat
 62    * the DOM4J {@link org.dom4j.io.OutputFormat}to be used
 63    *
 64    * @see javax.xml.bind.JAXBContext
 65    */
 66  0 public JAXBWriter(String contextPath, OutputFormat outputFormat) {
 67  0 super(contextPath);
 68  0 this.outputFormat = outputFormat;
 69    }
 70   
 71    /**
 72    * Creates a new JAXBWriter for the given JAXB context path, using the
 73    * specified {@link java.lang.Classloader}. (This is the Java package where
 74    * JAXB can find the generated XML classes. This package MUST contain
 75    * jaxb.properties!)
 76    *
 77    * @param contextPath
 78    * JAXB context path to be used
 79    * @param classloader
 80    * the classloader to be used for loading JAXB
 81    *
 82    * @see javax.xml.bind.JAXBContext
 83    */
 84  0 public JAXBWriter(String contextPath, ClassLoader classloader) {
 85  0 super(contextPath, classloader);
 86    }
 87   
 88    /**
 89    * Creates a new JAXBWriter for the given JAXB context path, using the
 90    * specified {@link java.lang.Classloader}. The specied {@link
 91    * org.dom4j.io.OutputFormat} will be used while writing the XML stream.
 92    *
 93    * @param contextPath
 94    * JAXB context path to be used
 95    * @param classloader
 96    * the class loader to be used to load JAXB
 97    * @param outputFormat
 98    * the DOM4J {@link org.dom4j.io.OutputFormat}to be used
 99    *
 100    * @see javax.xml.bind.JAXBContext
 101    */
 102  0 public JAXBWriter(String contextPath, ClassLoader classloader,
 103    OutputFormat outputFormat) {
 104  0 super(contextPath, classloader);
 105  0 this.outputFormat = outputFormat;
 106    }
 107   
 108    /**
 109    * Returns the OutputFormat that will be used when writing the XML stream.
 110    *
 111    * @return Returns the output format.
 112    */
 113  0 public OutputFormat getOutputFormat() {
 114  0 return outputFormat;
 115    }
 116   
 117    /**
 118    * Defines to write the resulting output to the specified {@link
 119    * java.io.File}.
 120    *
 121    * @param file
 122    * file to write to
 123    *
 124    * @throws IOException
 125    * when the file cannot be found
 126    */
 127  0 public void setOutput(File file) throws IOException {
 128  0 getWriter().setOutputStream(new FileOutputStream(file));
 129    }
 130   
 131    /**
 132    * Defines to write the resulting output to the specified {@link
 133    * java.io.OutputStream}
 134    *
 135    * @param outputStream
 136    * outputStream to write to.
 137    *
 138    * @throws IOException
 139    * DOCUMENT ME!
 140    */
 141  0 public void setOutput(OutputStream outputStream) throws IOException {
 142  0 getWriter().setOutputStream(outputStream);
 143    }
 144   
 145    /**
 146    * Defines to write the resulting output to the specified {@link Writer}.
 147    *
 148    * @param writer
 149    * writer to write to
 150    *
 151    * @throws IOException
 152    */
 153  0 public void setOutput(Writer writer) throws IOException {
 154  0 getWriter().setWriter(writer);
 155    }
 156   
 157    /**
 158    * Start a document by writing the initial XML declaration to the output.
 159    * This must be done prior to writing any other elements.
 160    *
 161    * @throws IOException
 162    * if an error occured while writing the output
 163    * @throws SAXException
 164    * thrown by the underlying SAX driver
 165    */
 166  0 public void startDocument() throws IOException, SAXException {
 167  0 getWriter().startDocument();
 168    }
 169   
 170    /**
 171    * Stop writing the document to the output. This must be done when all other
 172    * elements are finished.
 173    *
 174    * @throws IOException
 175    * if an error occured while writing the output
 176    * @throws SAXException
 177    * thrown by the underlying SAX driver
 178    */
 179  0 public void endDocument() throws IOException, SAXException {
 180  0 getWriter().endDocument();
 181    }
 182   
 183    /**
 184    * Writes the specified {@link javax.xml.bind.Element}to the document.
 185    * {@link javax.xml.bind.Element}instances can be created using the
 186    * ObjectFactory that is generated by the JAXB compiler.
 187    *
 188    * @param jaxbObject
 189    *
 190    * @throws IOException
 191    * if an error occured while writing the output
 192    * @throws JAXBException
 193    * when an error occured while marshalling the jaxbObject
 194    */
 195  0 public void write(javax.xml.bind.Element jaxbObject) throws IOException,
 196    JAXBException {
 197  0 getWriter().write(marshal(jaxbObject));
 198    }
 199   
 200    /**
 201    * Writes the closing tag of the specified {@link javax.xml.bind.Element}to
 202    * the document. This method can be used for writing {@link
 203    * javax.xml.bind.Element} instances can be created using the ObjectFactory
 204    * that is generated by the JAXB compiler.
 205    *
 206    * @param jaxbObject
 207    * the JAXB element to write
 208    *
 209    * @throws IOException
 210    * if an error occured while writing the output
 211    * @throws JAXBException
 212    * when an error occured while marshalling the jaxbObject
 213    */
 214  0 public void writeClose(javax.xml.bind.Element jaxbObject)
 215    throws IOException, JAXBException {
 216  0 getWriter().writeClose(marshal(jaxbObject));
 217    }
 218   
 219    /**
 220    * Writes the opening tag of the specified {@link javax.xml.bind.Element}to
 221    * the document. {@link javax.xml.bind.Element}instances can be created
 222    * using the ObjectFactory that is generated by the JAXB compiler.
 223    *
 224    * @param jaxbObject
 225    * the JAXB element to write
 226    *
 227    * @throws IOException
 228    * if an error occured while writing the output
 229    * @throws JAXBException
 230    * when an error occured while marshalling the jaxbObject
 231    */
 232  0 public void writeOpen(javax.xml.bind.Element jaxbObject)
 233    throws IOException, JAXBException {
 234  0 getWriter().writeOpen(marshal(jaxbObject));
 235    }
 236   
 237    /**
 238    * Writes the specified {@link org.dom4j.Element}to the document.
 239    *
 240    * @param element
 241    * the {@link org.dom4j.Element}to write
 242    *
 243    * @throws IOException
 244    * if an error occured while writing the output
 245    */
 246  0 public void writeElement(Element element) throws IOException {
 247  0 getWriter().write(element);
 248    }
 249   
 250    /**
 251    * Writes the closing tag of the specified {@link org.dom4j.Element}to the
 252    * document.
 253    *
 254    * @param element
 255    * the {@link org.dom4j.Element}to write
 256    *
 257    * @throws IOException
 258    * if an error occured while writing the output
 259    */
 260  0 public void writeCloseElement(Element element) throws IOException {
 261  0 getWriter().writeClose(element);
 262    }
 263   
 264    /**
 265    * Writes the opening tag of the specified {@link org.dom4j.Element}to the
 266    * document.
 267    *
 268    * @param element
 269    * the {@link org.dom4j.Element}to write
 270    *
 271    * @throws IOException
 272    * if an error occured while writing the output
 273    */
 274  0 public void writeOpenElement(Element element) throws IOException {
 275  0 getWriter().writeOpen(element);
 276    }
 277   
 278  0 private XMLWriter getWriter() throws IOException {
 279  0 if (xmlWriter == null) {
 280  0 if (this.outputFormat != null) {
 281  0 xmlWriter = new XMLWriter(outputFormat);
 282    } else {
 283  0 xmlWriter = new XMLWriter();
 284    }
 285    }
 286   
 287  0 return xmlWriter;
 288    }
 289    }
 290   
 291    /*
 292    * Redistribution and use of this software and associated documentation
 293    * ("Software"), with or without modification, are permitted provided that the
 294    * following conditions are met:
 295    *
 296    * 1. Redistributions of source code must retain copyright statements and
 297    * notices. Redistributions must also contain a copy of this document.
 298    *
 299    * 2. Redistributions in binary form must reproduce the above copyright notice,
 300    * this list of conditions and the following disclaimer in the documentation
 301    * and/or other materials provided with the distribution.
 302    *
 303    * 3. The name "DOM4J" must not be used to endorse or promote products derived
 304    * from this Software without prior written permission of MetaStuff, Ltd. For
 305    * written permission, please contact dom4j-info@metastuff.com.
 306    *
 307    * 4. Products derived from this Software may not be called "DOM4J" nor may
 308    * "DOM4J" appear in their names without prior written permission of MetaStuff,
 309    * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd.
 310    *
 311    * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org
 312    *
 313    * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND
 314    * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 315    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 316    * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE
 317    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 318    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 319    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 320    * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 321    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 322    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 323    * POSSIBILITY OF SUCH DAMAGE.
 324    *
 325    * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.
 326    */