]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Created a new overloaded method Driver.render(InputHandler), simplifies internal...
authorGlen Mazza <gmazza@apache.org>
Sun, 27 Jul 2003 16:37:14 +0000 (16:37 +0000)
committerGlen Mazza <gmazza@apache.org>
Sun, 27 Jul 2003 16:37:14 +0000 (16:37 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196746 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/apps/AWTStarter.java
src/java/org/apache/fop/apps/CommandLineOptions.java
src/java/org/apache/fop/apps/CommandLineStarter.java
src/java/org/apache/fop/apps/Driver.java
src/java/org/apache/fop/apps/InputHandler.java
src/java/org/apache/fop/apps/PrintStarter.java
src/java/org/apache/fop/apps/Starter.java
src/java/org/apache/fop/tools/TestConverter.java
src/java/org/apache/fop/tools/anttasks/Fop.java

index 57515a6cb2fc7de7ad740551160346e4726efd67..caf6bd39bab48f950117e779cf0c5a1cbd2fd111 100644 (file)
@@ -62,9 +62,6 @@ import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.util.Locale;
 
-// SAX
-import org.xml.sax.XMLReader;
-
 /**
  * AWT Viewer starter.
  * Originally contributed by:
@@ -77,7 +74,6 @@ public class AWTStarter extends CommandLineStarter {
     private PreviewDialog frame;
     private Translator translator;
     private Driver driver;
-    private XMLReader parser;
 
     /**
      * Construct an AWTStarter
@@ -103,11 +99,6 @@ public class AWTStarter extends CommandLineStarter {
         renderer.setComponent(frame);
         driver = new Driver();
         driver.setRenderer(renderer);
-        parser = inputHandler.getParser();
-        if (parser == null) {
-            throw new FOPException("Unable to create SAX parser");
-        }
-        setParserFeatures(parser);
     }
 
     /**
@@ -118,7 +109,7 @@ public class AWTStarter extends CommandLineStarter {
         driver.reset();
         try {
             frame.setStatus(translator.getString("Status.Build.FO.tree"));
-            driver.render(parser, inputHandler.getInputSource());
+            driver.render(inputHandler);
             frame.setStatus(translator.getString("Status.Show"));
             frame.showPage();
         } catch (Exception e) {
index 653ab2158d2145b3b55701f5b30dd0c6e92d13c5..aa66d25b57ddedbef71d730b523990f423bbe41a 100644 (file)
@@ -678,7 +678,7 @@ public class CommandLineOptions {
             + "                    see options with \"-print help\" \n\n"
             + " [Examples]\n" + "  Fop foo.fo foo.pdf \n"
             + "  Fop -fo foo.fo -pdf foo.pdf (does the same as the previous line)\n"
-            + "  Fop -xsl foo.xsl -xml foo.xml -pdf foo.pdf\n"
+            + "  Fop -xml foo.xml -xsl foo.xsl -pdf foo.pdf\n"
             + "  Fop foo.fo -mif foo.mif\n"
             + "  Fop foo.fo -rtf foo.rtf\n"
             + "  Fop foo.fo -print or Fop -print foo.fo \n"
index cdda837b31194d33aaedd99cf01db8c87aaa3749..13019301807587e2314c1277c873507aecd4f528 100644 (file)
@@ -50,9 +50,6 @@
  */ 
 package org.apache.fop.apps;
 
-// SAX
-import org.xml.sax.XMLReader;
-
 // Java
 import java.io.BufferedOutputStream;
 import java.io.FileOutputStream;
@@ -85,15 +82,9 @@ public class CommandLineStarter extends Starter {
      */
     public void run() throws FOPException {
         String version = Version.getVersion();
-
         getLogger().info(version);
-
-        XMLReader parser = inputHandler.getParser();
-        setParserFeatures(parser);
-
         Driver driver = new Driver();
         setupLogger(driver);
-        driver.initialize();
 
         try {
             driver.setRenderer(commandLineOptions.getRenderer());
@@ -105,7 +96,7 @@ public class CommandLineStarter extends Starter {
                     driver.getRenderer().setOptions(
                   commandLineOptions.getRendererOptions());
                 }
-                driver.render(parser, inputHandler.getInputSource());
+                driver.render(inputHandler);
             } finally {
                 bos.close();
             }
index 86c6d220695a82e912271d4ac8d61c0089335277..715195bae583e4812e7ecf14548198e3971737d7 100644 (file)
@@ -552,6 +552,19 @@ public class Driver implements LogEnabled {
         return treeBuilder;
     }
 
+    /**
+     * Render the FO document read by a SAX Parser from an InputHandler
+     * @param InputHandler the input handler containing the source and
+     * parser information.
+     * @throws FOPException if anything goes wrong.
+     */
+    public synchronized void render(InputHandler inputHandler)
+                throws FOPException {
+        XMLReader parser = inputHandler.getParser();
+        inputHandler.setParserFeatures(parser);
+        render(parser, inputHandler.getInputSource());
+    }
+
     /**
      * Render the FO document read by a SAX Parser from an InputSource.
      * @param parser the SAX parser.
index 7f7fe40a0953ba32a8d5849629fd982c91ad7e31..c9783fc130ef214c0f38401001ded26e1390aa99 100644 (file)
@@ -136,6 +136,22 @@ public abstract class InputHandler {
      * @throws FOPException if processing this InputHandler fails
      */
     public abstract void run(Driver driver) throws FOPException;
-    
+
+    /**
+     * Sets the parser features on an XMLReader
+     * @param parser XMLReader to set features on
+     * @throws FOPException if the XMLReader doesn't support the feature that
+     * need to be set
+     */
+    public static void setParserFeatures(XMLReader parser) throws FOPException {
+        try {
+            parser.setFeature("http://xml.org/sax/features/namespace-prefixes",
+                              true);
+        } catch (SAXException e) {
+            throw new FOPException("Error: You need a parser which allows the"
+                   + " http://xml.org/sax/features/namespace-prefixes"
+                   + " feature to be set to true to support namespaces", e);
+        }
+    }
 }
 
index 4e242d9775e3e4ad01e320a8727ce4b2f07694fa..e8a256bd01be55d0852802b6e0c827cc0322be44 100644 (file)
@@ -59,7 +59,6 @@ package org.apache.fop.apps;
  * (apparently) redundant copies code, generally cleaned up, and
  * added interfaces to the new Render API.
  */
-import org.xml.sax.XMLReader;
 import java.awt.print.PrinterJob;
 import org.apache.fop.render.awt.AWTPrintRenderer;
 
@@ -88,13 +87,6 @@ public class PrintStarter extends CommandLineStarter {
     public void run() throws FOPException {
         Driver driver = new Driver();
 
-        String version = Version.getVersion();
-        //log.debug(version);
-
-        XMLReader parser = inputHandler.getParser();
-
-        setParserFeatures(parser);
-
         PrinterJob pj = PrinterJob.getPrinterJob();
         if (System.getProperty("dialog") != null) {
             if (!pj.printDialog()) {
@@ -110,7 +102,7 @@ public class PrintStarter extends CommandLineStarter {
 
         try {
             driver.setRenderer(renderer);
-            driver.render(parser, inputHandler.getInputSource());
+            driver.render(inputHandler);
         } catch (Exception e) {
             if (e instanceof FOPException) {
                 throw (FOPException)e;
index f4b5d2ee8d7220a2a11e34029ce66ec5c83ff485..676505675c3ee4ea455108e23e5b33e0c47f8a0d 100644 (file)
@@ -53,10 +53,6 @@ package org.apache.fop.apps;
 // Avalon
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 
-// SAX
-import org.xml.sax.XMLReader;
-import org.xml.sax.SAXException;
-
 /**
  * Abstract super class.
  * Creates a SAX Parser (defaulting to Xerces).
@@ -87,21 +83,4 @@ public abstract class Starter extends AbstractLogEnabled {
      */
     public abstract void run() throws FOPException;
 
-    /**
-     * Sets the parser features on an XMLReader
-     * @param parser XMLReader to set features on
-     * @throws FOPException if the XMLReader doesn't support the feature that
-     * need to be set
-     */
-    public void setParserFeatures(XMLReader parser) throws FOPException {
-        try {
-            parser.setFeature("http://xml.org/sax/features/namespace-prefixes",
-                              true);
-        } catch (SAXException e) {
-            throw new FOPException("Error: You need a parser which allows the"
-                   + " http://xml.org/sax/features/namespace-prefixes"
-                   + " feature to be set to true to support namespaces", e);
-        }
-    }
-
 }
index 1f844904300d7a1140ee06c8437ff9f05975412f..bbe5cb70989e0156fcf28903bc8ba1f0729d148f 100644 (file)
@@ -70,8 +70,6 @@ import javax.xml.parsers.DocumentBuilderFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import org.xml.sax.XMLReader;
-import org.xml.sax.SAXException;
 
 /**
  * TestConverter is used to process a set of tests specified in
@@ -287,12 +285,8 @@ public class TestConverter extends AbstractLogEnabled {
                                                              + xsl));
             }
 
-            XMLReader parser = inputHandler.getParser();
-            setParserFeatures(parser);
-
             Driver driver = new Driver();
             setupLogger(driver, "fop");
-            driver.initialize();
             FOUserAgent userAgent = new FOUserAgent();
             userAgent.setBaseURL(baseURL);
             driver.setUserAgent(userAgent);
@@ -316,7 +310,7 @@ public class TestConverter extends AbstractLogEnabled {
                                        new java.io.FileOutputStream(new File(destdir,
                                        outname + (outputPDF ? ".pdf" : ".at.xml")))));
             getLogger().debug("ddir:" + destdir + " on:" + outname + ".pdf");
-            driver.render(parser, inputHandler.getInputSource());
+            driver.render(inputHandler);
 
             // check difference
             if (compare != null) {
@@ -362,16 +356,6 @@ public class TestConverter extends AbstractLogEnabled {
         return false;
     }
 
-    private void setParserFeatures(XMLReader parser) throws FOPException {
-        try {
-            parser.setFeature("http://xml.org/sax/features/namespace-prefixes",
-                              true);
-        } catch (SAXException e) {
-            throw new FOPException("Error in setting up parser feature namespace-prefixes\n"
-                                   + "You need a parser which supports SAX version 2", e);
-        }
-    }
-
     private Node locateResult(Node testcase, String id) {
         NodeList cases = testcase.getChildNodes();
         for (int count = 0; count < cases.getLength(); count++) {
index a4104de9287736f7d466998c090ed4b77b33562d..9c3007199e7ee9a51151fb47aee8f82f5b847c2c 100644 (file)
@@ -58,9 +58,6 @@ import org.apache.tools.ant.Task;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.util.GlobPatternMapper;
 
-// SAX
-import org.xml.sax.XMLReader;
-
 // Java
 import java.io.File;
 import java.io.IOException;
@@ -463,8 +460,6 @@ class FOPTaskStarter extends Starter {
     private void render(File foFile, File outFile,
                         int renderer) throws FOPException {
         InputHandler inputHandler = new FOInputHandler(foFile);
-        XMLReader parser = inputHandler.getParser();
-        setParserFeatures(parser);
 
         OutputStream out = null;
         try {
@@ -480,14 +475,13 @@ class FOPTaskStarter extends Starter {
         try {
             Driver driver = new Driver();
             setupLogger(driver);
-            driver.initialize();
             FOUserAgent userAgent = new FOUserAgent();
             userAgent.setBaseURL(this.baseURL);
             userAgent.enableLogging(getLogger());
             driver.setUserAgent(userAgent);
             driver.setRenderer(renderer);
             driver.setOutputStream(out);
-            driver.render(parser, inputHandler.getInputSource());
+            driver.render(inputHandler);
         } catch (Exception ex) {
             throw new BuildException(ex);
         } finally {