#ODFTOOLKIT-408# fixed by Raimund Hölle - OdfXmlHelper duplicated in src/test
git-svn-id: https://svn.apache.org/repos/asf/incubator/odf/trunk@1714429 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/OdfXMLHelper.java b/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/OdfXMLHelper.java
deleted file mode 100644
index 8fb62c1..0000000
--- a/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/OdfXMLHelper.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
- *
- * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
- *
- * Use is subject to license terms.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
- * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ************************************************************************/
-package org.odftoolkit.odfdom.pkg;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-public class OdfXMLHelper {
-
- /**
- * create an XMLReader
- * with a Resolver set to parse content in a ODF Package
- *
- * @param pkg the ODF Package
- * @return a SAX XMLReader
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public XMLReader newXMLReader(OdfPackage pkg)
- throws SAXException, ParserConfigurationException {
- XMLReader xmlReader = pkg.getXMLReader();
- xmlReader.setEntityResolver(pkg.getEntityResolver());
- return xmlReader;
- }
-
- /**
- * use SAX parser to parse content of package
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param contentHandler a SAX Content handler to receive SAX Events
- * @param errorHandler a SAX Error handler to be called on errors during parsing
- * @throws SAXException
- * @throws ParserConfigurationException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws TransformerConfigurationException
- * @throws TransformerException
- */
- public void parse(OdfPackage pkg, String path, ContentHandler contentHandler, ErrorHandler errorHandler)
- throws SAXException, ParserConfigurationException, IOException, IllegalArgumentException, TransformerConfigurationException, TransformerException {
-
- InputStream is = null;
- try {
- is = pkg.getInputStream(path);
- XMLReader reader = newXMLReader(pkg);
-
- String uri = pkg.getBaseURI() + path;
-
- if (contentHandler != null) {
- reader.setContentHandler(contentHandler);
- }
- if (errorHandler != null) {
- reader.setErrorHandler(errorHandler);
- }
-
- InputSource ins = new InputSource(is);
- ins.setSystemId(uri);
-
- reader.parse(ins);
- } catch (Exception ex) {
- Logger.getLogger(OdfXMLHelper.class.getName()).log(Level.SEVERE, null, ex);
- } finally {
- try {
- is.close();
- } catch (IOException ex) {
- Logger.getLogger(OdfXMLHelper.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
-
- /**
- * Do XSL-Transformation on content contained in package
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param templatePath a path to a file in the filesystem containing an XSL Template
- * @param outPath a path in the filesystem for the output of the XSL Transformation
- * @throws TransformerConfigurationException
- * @throws TransformerException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public void transform(OdfPackage pkg, String path, String templatePath, String outPath)
- throws TransformerConfigurationException, TransformerException,
- IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-
- transform(pkg, path, new File(templatePath), new File(outPath));
- }
-
- /**
- * Do XSL-Transformation on content contained in package
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param templateSource TraX Source of an XSL Transformation Template
- * @param outPath path to an output file for the XSL Transformation
- * @throws TransformerConfigurationException
- * @throws TransformerException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public void transform(OdfPackage pkg, String path, Source templateSource, String outPath)
- throws TransformerConfigurationException, TransformerException,
- IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-
- transform(pkg, path, templateSource, new File(outPath));
- }
-
- /**
- * Do XSL-Transformation on content contained in package
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param templateSource TraX Source of an XSL Transformation
- * @param out an output File
- * @throws TransformerConfigurationException
- * @throws TransformerException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public void transform(OdfPackage pkg, String path, Source templateSource, File out)
- throws TransformerConfigurationException, TransformerException,
- IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-
- transform(pkg, path, templateSource, new StreamResult(out));
- }
-
- /**
- * Do XSL-Transformation on content contained in package
- * insert result back to package
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param templatePath path inside the filesystem to an XSL template file
- * @throws TransformerConfigurationException
- * @throws TransformerException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public void transform(OdfPackage pkg, String path, String templatePath)
- throws TransformerConfigurationException, TransformerException,
- IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
- transform(pkg, path, new File(templatePath));
- }
-
- /**
- * Do XSL-Transformation on content contained in package
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param template File containing an XSLT Template
- * @param out File for the XSLT ouput
- * @throws TransformerConfigurationException
- * @throws TransformerException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public void transform(OdfPackage pkg, String path, File template, File out)
- throws TransformerConfigurationException, TransformerException,
- IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-
- TransformerFactory transformerfactory = TransformerFactory.newInstance();
-
- Templates templates = transformerfactory.newTemplates(new StreamSource(template));
- transform(pkg, path, templates, new StreamResult(out));
- }
-
- /**
- * Do XSL-Transformation on content contained in package
- * insert result back to package
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param template a File containing an XSLT Template
- * @throws TransformerConfigurationException
- * @throws TransformerException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public void transform(OdfPackage pkg, String path, File template)
- throws TransformerConfigurationException, TransformerException,
- IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-
- TransformerFactory transformerfactory = TransformerFactory.newInstance();
-
- Templates templates = transformerfactory.newTemplates(new StreamSource(template));
- transform(pkg, path, templates);
- }
-
- /**
- * Do XSL-Transformation on content contained in package
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param templateSource TraX Source of an XSLT Template
- * @param result TraX Result of XSL-Tranformation
- * @throws TransformerConfigurationException
- * @throws TransformerException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public void transform(OdfPackage pkg, String path, Source templateSource, Result result)
- throws TransformerConfigurationException, TransformerException,
- IOException, IllegalArgumentException, SAXException,
- ParserConfigurationException {
- TransformerFactory transformerfactory = TransformerFactory.newInstance();
- transformerfactory.setURIResolver(pkg.getURIResolver());
-
- Templates templates = transformerfactory.newTemplates(templateSource);
- transform(pkg, path, templates, result);
- }
-
- /**
- * Does an XSL-Transformation on content contained in package.<br/><br/>
- *
- * There are three default parameteres provided to the transformation:
- * There are three default parameteres provided to the transformation:
- * <ol>
- * <li><b>sourceURL:</b> the URL of the source directory </li>
- * <li><b>sourceBaseURL:</b> baseURL of the source file (the package).
- * This URL necessary to access any content within the package from the XSLT scripts.
- * The relative package path will concatenated after the 'sourceBaseURL'.</li>
- * <li><b>targetURL:</b> the URL of the target directory</li>
- * <li><b>targetBaseURL:</b>the baseURL of the target file</li>
- * </ol>
- *
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param templates TraX XSLT Template
- * @param result TraX XSLT Result
- * @throws TransformerConfigurationException
- * @throws TransformerException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public void transform(OdfPackage pkg, String path, Templates templates, Result result)
- throws TransformerConfigurationException, TransformerException,
- IOException, IllegalArgumentException, SAXException,
- ParserConfigurationException {
- try {
-
- Source source = null;
- String uri = pkg.getBaseURI() + path;
- Document doc = pkg.getDom(path);
- source = new DOMSource(doc);
- Transformer transformer = templates.newTransformer();
- transformer.setURIResolver(pkg.getURIResolver());
-
- transformer.setParameter("sourceURL", uri);
- transformer.setParameter("sourceBaseURL", pkg.getBaseURI() + "/");
-
- uri = result.getSystemId();
- if (uri != null) {
- transformer.setParameter("targetURL", uri);
- int i = uri.lastIndexOf('/');
- if (i > 0) {
- uri = uri.substring(0, i + 1);
- transformer.setParameter("targetBaseURL", uri);
- }
- }
- DocumentType doctype = doc.getDoctype();
- if (doctype != null) {
- if (doctype.getPublicId() != null) {
- transformer.setParameter("publicType", doctype.getPublicId());
- }
- if (doctype.getSystemId() != null) {
- transformer.setParameter("systemType", doctype.getSystemId());
- }
- }
-
- transformer.transform(source, result);
- } catch (Exception ex) {
- Logger.getLogger(OdfXMLHelper.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
- }
- }
-
- /**
- * Do XSL-Transformation on content contained in package
- * and insert result back to package
- * @param pkg a OdfPackage
- * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
- * @param templates Trax XSLT Template
- * @throws TransformerConfigurationException
- * @throws TransformerException
- * @throws IOException
- * @throws IllegalArgumentException
- * @throws SAXException
- * @throws ParserConfigurationException
- */
- public void transform(OdfPackage pkg, String path, Templates templates)
- throws TransformerConfigurationException, TransformerException,
- IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-
- Result result = null;
- ByteArrayOutputStream baos = null;
-
-// if (pkg.isDomCached(path)) {
-// result = new DOMResult();
-// } else {
- baos = new ByteArrayOutputStream();
- result = new StreamResult(baos);
-// }
-
- transform(pkg, path, templates, result);
-
-// if (pkg.isDomCached(path)) {
-// try {
-// pkg.insert((Document) ((DOMResult) result).getNode(), path, null);
-// } catch (Exception ex) {
-// Logger.getLogger(OdfXMLHelper.class.getName()).log(Level.SEVERE, null, ex);
-// }
-// } else {
- try {
- byte[] data = baos.toByteArray();
- pkg.insert(data, path, "text/xml");
- } catch (Exception ex) {
- Logger.getLogger(OdfXMLHelper.class.getName()).log(Level.SEVERE, null, ex);
- }
-// }
-
- }
-}
-