diff options
Diffstat (limited to 'src/org/apache/fop/apps/XSLTInputHandler.java')
-rw-r--r-- | src/org/apache/fop/apps/XSLTInputHandler.java | 103 |
1 files changed, 75 insertions, 28 deletions
diff --git a/src/org/apache/fop/apps/XSLTInputHandler.java b/src/org/apache/fop/apps/XSLTInputHandler.java index cf24a3ea4..147075634 100644 --- a/src/org/apache/fop/apps/XSLTInputHandler.java +++ b/src/org/apache/fop/apps/XSLTInputHandler.java @@ -1,51 +1,95 @@ /* * $Id$ - * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. - * For details on use and redistribution please refer to the - * LICENSE file included with these sources. - */ - + * ============================================================================ + * The Apache Software License, Version 1.1 + * ============================================================================ + * + * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modifica- + * tion, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The end-user documentation included with the redistribution, if any, must + * include the following acknowledgment: "This product includes software + * developed by the Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, if + * and wherever such third-party acknowledgments normally appear. + * + * 4. The names "FOP" and "Apache Software Foundation" must not be used to + * endorse or promote products derived from this software without prior + * written permission. For written permission, please contact + * apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", nor may + * "Apache" appear in their name, without prior written permission of the + * Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- + * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * ============================================================================ + * + * This software consists of voluntary contributions made by many individuals + * on behalf of the Apache Software Foundation and was originally created by + * James Tauber <jtauber@jtauber.com>. For more information on the Apache + * Software Foundation, please see <http://www.apache.org/>. + */ package org.apache.fop.apps; -import java.lang.reflect.*; - +// Imported java.io classes +import java.io.File; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; // Imported SAX classes import org.xml.sax.InputSource; -import org.xml.sax.SAXException; import org.xml.sax.XMLReader; -// Imported java.io classes -import java.io.*; - // FOP import org.apache.fop.tools.xslt.XSLTransform; -/* -add url constructer -*/ - /** - * XSLTInputHandler basically takes an xmlfile and transforms it with an xsltfile - * and the resulting xsl:fo document is input for Fop. + * XSLTInputHandler basically takes an XML file and transforms it with an XSLT + * file and the resulting XSL-FO document is input for FOP. + * @todo add URL constructor */ public class XSLTInputHandler extends InputHandler { - File xmlfile, xsltfile; - boolean useOldTransform = false; - boolean gotParser = false; + private File xmlfile, xsltfile; + private boolean useOldTransform = false; + private boolean gotParser = false; + /** + * Main constructor + * @param xmlfile XML file + * @param xsltfile XSLT file + */ public XSLTInputHandler(File xmlfile, File xsltfile) { this.xmlfile = xmlfile; this.xsltfile = xsltfile; } /** - * overwrites the method of the super class to return the xmlfile + * @see org.apache.fop.apps.InputHandler#getInputSource() */ public InputSource getInputSource() { - if(!gotParser) { - throw new IllegalStateException("The method getParser() must be called and the parser used when using XSLTInputHandler"); + if (!gotParser) { + throw new IllegalStateException("The method getParser() must be " + + "called and the parser used when using XSLTInputHandler"); } if (useOldTransform) { try { @@ -58,9 +102,9 @@ public class XSLTInputHandler extends InputHandler { // if xml file size is larger than 500 kb write the fo:file to disk if ((xmlfile.length()) > 500000) { tmpFile = new File(xmlfile.getName() + ".fo.tmp"); - writer = new FileWriter(tmpFile); + writer = new java.io.FileWriter(tmpFile); } else { - writer = new StringWriter(); + writer = new java.io.StringWriter(); } XSLTransform.transform(xmlfile.getCanonicalPath(), @@ -70,14 +114,15 @@ public class XSLTInputHandler extends InputHandler { writer.close(); if (tmpFile != null) { - reader = new FileReader(tmpFile); + reader = new java.io.FileReader(tmpFile); } else { // create a input source containing the xsl:fo file which can be fed to Fop - reader = new StringReader(writer.toString()); + reader = new java.io.StringReader(writer.toString()); } return new InputSource(reader); } catch (Exception ex) { ex.printStackTrace(); + /**@todo do proper logging of exceptions */ return null; } } else { @@ -89,7 +134,9 @@ public class XSLTInputHandler extends InputHandler { /** * This looks to see if the Trax api is supported and uses that to * get an XMLFilter. Otherwise, it falls back to using DOM documents - * + * @return the created <code>XMLReader</code> + * @throws FOPException if getting the parser fails + * @see org.apache.fop.apps.InputHandler#getParser() */ public XMLReader getParser() throws FOPException { gotParser = true; |