aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/org/apache/fop/tools/DocumentInputSource.java33
-rw-r--r--src/org/apache/fop/tools/DocumentReader.java114
-rw-r--r--src/org/apache/fop/tools/TestConverter.java90
-rw-r--r--src/org/apache/fop/tools/anttasks/Compare.java55
-rw-r--r--src/org/apache/fop/tools/anttasks/RunTest.java68
-rw-r--r--src/org/apache/fop/tools/anttasks/SerializeHyphPattern.java33
-rw-r--r--src/org/apache/fop/tools/xslt/TraxTransform.java60
-rw-r--r--src/org/apache/fop/tools/xslt/XSLTransform.java48
8 files changed, 332 insertions, 169 deletions
diff --git a/src/org/apache/fop/tools/DocumentInputSource.java b/src/org/apache/fop/tools/DocumentInputSource.java
index 2a382dbef..7754a93b6 100644
--- a/src/org/apache/fop/tools/DocumentInputSource.java
+++ b/src/org/apache/fop/tools/DocumentInputSource.java
@@ -1,41 +1,54 @@
/*
* $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * Copyright (C) 2001-2003 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
package org.apache.fop.tools;
-import java.util.*;
-import org.w3c.dom.*;
-import org.xml.sax.*;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
/**
* This is an InputSource to be used with DocumentReader.
*
* @author Kelly A Campbell
- *
*/
-
public class DocumentInputSource extends InputSource {
- private Document _document;
+
+ private Document document;
+ /**
+ * Default constructor.
+ */
public DocumentInputSource() {
super();
}
+ /**
+ * Main constructor
+ * @param document the DOM document to use as input
+ */
public DocumentInputSource(Document document) {
this();
- _document = document;
+ setDocument(document);
}
+ /**
+ * Returns the input document.
+ * @return the input DOM document.
+ */
public Document getDocument() {
- return _document;
+ return this.document;
}
+ /**
+ * Sets the input document.
+ * @param document the DOM document to use as input
+ */
public void setDocument(Document document) {
- _document = document;
+ this.document = document;
}
}
diff --git a/src/org/apache/fop/tools/DocumentReader.java b/src/org/apache/fop/tools/DocumentReader.java
index 27421e490..6081a01c9 100644
--- a/src/org/apache/fop/tools/DocumentReader.java
+++ b/src/org/apache/fop/tools/DocumentReader.java
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * Copyright (C) 2001-2003 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
@@ -8,13 +8,23 @@
package org.apache.fop.tools;
import java.io.IOException;
-// import java.util.*;
// DOM
-import org.w3c.dom.*;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
// SAX
-import org.xml.sax.*;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.DTDHandler;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXNotSupportedException;
+import org.xml.sax.XMLReader;
import org.xml.sax.helpers.AttributesImpl;
/**
@@ -30,8 +40,8 @@ public class DocumentReader implements XMLReader {
// //////////////////////////////////////////////////////////////////
// Configuration.
// //////////////////////////////////////////////////////////////////
- private boolean _namespaces = true;
- private boolean _namespace_prefixes = true;
+ private boolean namespaces = true;
+ private boolean namespacePrefixes = true;
/**
@@ -82,9 +92,9 @@ public class DocumentReader implements XMLReader {
*
* @param name The feature name, which is a fully-qualified URI.
* @return The current state of the feature (true or false).
- * @exception org.xml.sax.SAXNotRecognizedException When the
+ * @exception SAXNotRecognizedException When the
* XMLReader does not recognize the feature name.
- * @exception org.xml.sax.SAXNotSupportedException When the
+ * @exception SAXNotSupportedException When the
* XMLReader recognizes the feature name but
* cannot determine its value at this time.
* @see #setFeature
@@ -92,12 +102,12 @@ public class DocumentReader implements XMLReader {
public boolean getFeature(String name)
throws SAXNotRecognizedException, SAXNotSupportedException {
if ("http://xml.org/sax/features/namespaces".equals(name)) {
- return _namespaces;
+ return namespaces;
} else if ("http://xml.org/sax/features/namespace-prefixes".equals(name)) {
- return _namespace_prefixes;
+ return namespacePrefixes;
} else {
throw new SAXNotRecognizedException("Feature '" + name
- + "' not recognized or supported by Document2SAXAdapter");
+ + "' not recognized or supported by Document2SAXAdapter");
}
}
@@ -123,10 +133,10 @@ public class DocumentReader implements XMLReader {
* a parse.</p>
*
* @param name The feature name, which is a fully-qualified URI.
- * @param state The requested state of the feature (true or false).
- * @exception org.xml.sax.SAXNotRecognizedException When the
+ * @param value The requested state of the feature (true or false).
+ * @exception SAXNotRecognizedException When the
* XMLReader does not recognize the feature name.
- * @exception org.xml.sax.SAXNotSupportedException When the
+ * @exception SAXNotSupportedException When the
* XMLReader recognizes the feature name but
* cannot set the requested value.
* @see #getFeature
@@ -134,12 +144,12 @@ public class DocumentReader implements XMLReader {
public void setFeature(String name, boolean value)
throws SAXNotRecognizedException, SAXNotSupportedException {
if ("http://xml.org/sax/features/namespaces".equals(name)) {
- _namespaces = value;
+ namespaces = value;
} else if ("http://xml.org/sax/features/namespace-prefixes".equals(name)) {
- _namespace_prefixes = value;
+ namespacePrefixes = value;
} else {
throw new SAXNotRecognizedException("Feature '" + name
- + "' not recognized or supported by Document2SAXAdapter");
+ + "' not recognized or supported by Document2SAXAdapter");
}
}
@@ -167,9 +177,9 @@ public class DocumentReader implements XMLReader {
*
* @param name The property name, which is a fully-qualified URI.
* @return The current value of the property.
- * @exception org.xml.sax.SAXNotRecognizedException When the
+ * @exception SAXNotRecognizedException When the
* XMLReader does not recognize the property name.
- * @exception org.xml.sax.SAXNotSupportedException When the
+ * @exception SAXNotSupportedException When the
* XMLReader recognizes the property name but
* cannot determine its value at this time.
* @see #setProperty
@@ -177,7 +187,7 @@ public class DocumentReader implements XMLReader {
public Object getProperty(String name)
throws SAXNotRecognizedException, SAXNotSupportedException {
throw new SAXNotRecognizedException("Property '" + name
- + "' not recognized or supported by Document2SAXAdapter");
+ + "' not recognized or supported by Document2SAXAdapter");
}
@@ -203,17 +213,17 @@ public class DocumentReader implements XMLReader {
* extended handlers.</p>
*
* @param name The property name, which is a fully-qualified URI.
- * @param state The requested value for the property.
- * @exception org.xml.sax.SAXNotRecognizedException When the
+ * @param value The requested value for the property.
+ * @exception SAXNotRecognizedException When the
* XMLReader does not recognize the property name.
- * @exception org.xml.sax.SAXNotSupportedException When the
+ * @exception SAXNotSupportedException When the
* XMLReader recognizes the property name but
* cannot set the requested value.
*/
public void setProperty(String name, Object value)
throws SAXNotRecognizedException, SAXNotSupportedException {
throw new SAXNotRecognizedException("Property '" + name
- + "' not recognized or supported by Document2SAXAdapter");
+ + "' not recognized or supported by Document2SAXAdapter");
}
@@ -221,10 +231,10 @@ public class DocumentReader implements XMLReader {
// //////////////////////////////////////////////////////////////////
// Event handlers.
// //////////////////////////////////////////////////////////////////
- private EntityResolver _entityResolver = null;
- private DTDHandler _dtdHandler = null;
- private ContentHandler _contentHandler = null;
- private ErrorHandler _errorHandler = null;
+ private EntityResolver entityResolver = null;
+ private DTDHandler dtdHandler = null;
+ private ContentHandler contentHandler = null;
+ private ErrorHandler errorHandler = null;
/**
@@ -238,12 +248,10 @@ public class DocumentReader implements XMLReader {
* resolver immediately.</p>
*
* @param resolver The entity resolver.
- * @exception java.lang.NullPointerException If the resolver
- * argument is null.
* @see #getEntityResolver
*/
public void setEntityResolver(EntityResolver resolver) {
- _entityResolver = resolver;
+ entityResolver = resolver;
}
@@ -256,7 +264,7 @@ public class DocumentReader implements XMLReader {
* @see #setEntityResolver
*/
public EntityResolver getEntityResolver() {
- return _entityResolver;
+ return entityResolver;
}
@@ -272,12 +280,10 @@ public class DocumentReader implements XMLReader {
* handler immediately.</p>
*
* @param handler The DTD handler.
- * @exception java.lang.NullPointerException If the handler
- * argument is null.
* @see #getDTDHandler
*/
public void setDTDHandler(DTDHandler handler) {
- _dtdHandler = handler;
+ dtdHandler = handler;
}
@@ -290,7 +296,7 @@ public class DocumentReader implements XMLReader {
* @see #setDTDHandler
*/
public DTDHandler getDTDHandler() {
- return _dtdHandler;
+ return dtdHandler;
}
@@ -307,12 +313,10 @@ public class DocumentReader implements XMLReader {
* handler immediately.</p>
*
* @param handler The content handler.
- * @exception java.lang.NullPointerException If the handler
- * argument is null.
* @see #getContentHandler
*/
public void setContentHandler(ContentHandler handler) {
- _contentHandler = handler;
+ contentHandler = handler;
}
@@ -325,7 +329,7 @@ public class DocumentReader implements XMLReader {
* @see #setContentHandler
*/
public ContentHandler getContentHandler() {
- return _contentHandler;
+ return contentHandler;
}
@@ -344,12 +348,10 @@ public class DocumentReader implements XMLReader {
* handler immediately.</p>
*
* @param handler The error handler.
- * @exception java.lang.NullPointerException If the handler
- * argument is null.
* @see #getErrorHandler
*/
public void setErrorHandler(ErrorHandler handler) {
- _errorHandler = handler;
+ errorHandler = handler;
}
/**
@@ -360,7 +362,7 @@ public class DocumentReader implements XMLReader {
* @see #setErrorHandler
*/
public ErrorHandler getErrorHandler() {
- return _errorHandler;
+ return errorHandler;
}
@@ -374,11 +376,11 @@ public class DocumentReader implements XMLReader {
*
*
*
- * @param source The input source for the top-level of the
+ * @param input The input source for the top-level of the
* XML document.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * @exception SAXException Any SAX exception, possibly
* wrapping another exception.
- * @exception java.io.IOException An IO exception from the parser,
+ * @exception IOException An IO exception from the parser,
* possibly from a byte stream or character stream
* supplied by the application.
* @see org.xml.sax.InputSource
@@ -391,7 +393,7 @@ public class DocumentReader implements XMLReader {
public void parse(InputSource input) throws IOException, SAXException {
if (input instanceof DocumentInputSource) {
Document document = ((DocumentInputSource)input).getDocument();
- if (_contentHandler == null) {
+ if (contentHandler == null) {
throw new SAXException("ContentHandler is null. Please use setContentHandler()");
}
@@ -411,7 +413,7 @@ public class DocumentReader implements XMLReader {
while (currentNode != null) {
switch (currentNode.getNodeType()) {
case Node.DOCUMENT_NODE:
- _contentHandler.startDocument();
+ contentHandler.startDocument();
break;
case Node.CDATA_SECTION_NODE:
case Node.TEXT_NODE:
@@ -425,10 +427,10 @@ public class DocumentReader implements XMLReader {
array = new char[datalen];
}
data.getChars(0, datalen, array, 0);
- _contentHandler.characters(array, 0, datalen);
+ contentHandler.characters(array, 0, datalen);
break;
case Node.PROCESSING_INSTRUCTION_NODE:
- _contentHandler.processingInstruction(currentNode.getNodeName(),
+ contentHandler.processingInstruction(currentNode.getNodeName(),
currentNode.getNodeValue());
break;
case Node.ELEMENT_NODE:
@@ -441,7 +443,7 @@ public class DocumentReader implements XMLReader {
att.getName(), "CDATA",
att.getValue());
}
- _contentHandler.startElement(currentNode.getNamespaceURI(),
+ contentHandler.startElement(currentNode.getNamespaceURI(),
currentNode.getLocalName(),
currentNode.getNodeName(),
currentAtts);
@@ -457,10 +459,10 @@ public class DocumentReader implements XMLReader {
while (currentNode != null) {
switch (currentNode.getNodeType()) {
case Node.DOCUMENT_NODE:
- _contentHandler.endDocument();
+ contentHandler.endDocument();
break;
case Node.ELEMENT_NODE:
- _contentHandler.endElement(currentNode.getNamespaceURI(),
+ contentHandler.endElement(currentNode.getNamespaceURI(),
currentNode.getLocalName(),
currentNode.getNodeName());
break;
@@ -490,9 +492,9 @@ public class DocumentReader implements XMLReader {
* instead
*
* @param systemId The system identifier (URI).
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * @exception SAXException Any SAX exception, possibly
* wrapping another exception.
- * @exception java.io.IOException An IO exception from the parser,
+ * @exception IOException An IO exception from the parser,
* possibly from a byte stream or character stream
* supplied by the application.
* @see #parse(org.xml.sax.InputSource)
diff --git a/src/org/apache/fop/tools/TestConverter.java b/src/org/apache/fop/tools/TestConverter.java
index fac914a3f..ff4126db3 100644
--- a/src/org/apache/fop/tools/TestConverter.java
+++ b/src/org/apache/fop/tools/TestConverter.java
@@ -1,28 +1,34 @@
/*
* $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * Copyright (C) 2001-2003 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
package org.apache.fop.tools;
-import org.apache.fop.apps.*;
+import org.apache.fop.apps.Driver;
+import org.apache.fop.apps.FOInputHandler;
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.apps.InputHandler;
+import org.apache.fop.apps.XSLTInputHandler;
import org.apache.fop.fo.FOUserAgent;
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import java.io.*;
-import java.util.*;
+import java.io.File;
+import java.io.InputStream;
+import java.util.Map;
-import javax.xml.parsers.*;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
-import org.w3c.dom.*;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import org.xml.sax.XMLReader;
-import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
/**
* TestConverter is used to process a set of tests specified in
@@ -38,12 +44,13 @@ import org.xml.sax.SAXParseException;
* interface.
*/
public class TestConverter extends AbstractLogEnabled {
- boolean failOnly = false;
- boolean outputPDF = false;
- File destdir;
- File compare = null;
- String baseDir = "./";
- HashMap differ = new HashMap();
+
+ private boolean failOnly = false;
+ private boolean outputPDF = false;
+ private File destdir;
+ private File compare = null;
+ private String baseDir = "./";
+ private Map differ = new java.util.HashMap();
/**
* This main method can be used to run the test converter from
@@ -54,6 +61,7 @@ public class TestConverter extends AbstractLogEnabled {
* -b to set the base directory for where the testsuite and associated files are
* -failOnly to process only the tests which are specified as fail in the test results
* -pdf to output the result as pdf
+ * @param args command-line arguments
*/
public static void main(String[] args) {
if (args == null || args.length == 0) {
@@ -81,14 +89,27 @@ public class TestConverter extends AbstractLogEnabled {
tc.runTests(testFile, "results", null);
}
+ /**
+ * Controls whether to generate PDF or XML.
+ * @param pdf If True, PDF is generated, Area Tree XML otherwise.
+ */
public void setOutputPDF(boolean pdf) {
outputPDF = pdf;
}
+ /**
+ * Controls whether to process only the tests which are specified as fail
+ * in the test results.
+ * @param fail True if only fail tests should be processed
+ */
public void setFailOnly(boolean fail) {
failOnly = fail;
}
+ /**
+ * Sets the base directory.
+ * @param str base directory
+ */
public void setBaseDir(String str) {
baseDir = str;
}
@@ -97,8 +118,12 @@ public class TestConverter extends AbstractLogEnabled {
* Run the Tests.
* This runs the tests specified in the xml file fname.
* The document is read as a dom and each testcase is covered.
+ * @param fname filename of the input file
+ * @param dest destination directory
+ * @param compDir comparison directory
+ * @return Map a Map containing differences
*/
- public HashMap runTests(String fname, String dest, String compDir) {
+ public Map runTests(String fname, String dest, String compDir) {
getLogger().debug("running tests in file:" + fname);
try {
if (compDir != null) {
@@ -144,6 +169,7 @@ public class TestConverter extends AbstractLogEnabled {
* This goes through a test case in the document.
* A testcase can contain a test, a result or more test cases.
* A test case is handled recursively otherwise the test is run.
+ * @param tcase Test case node to run
*/
protected void runTestCase(Node tcase) {
if (tcase.hasAttributes()) {
@@ -160,7 +186,9 @@ public class TestConverter extends AbstractLogEnabled {
runTestCase(node);
} else if (nodename.equals("test")) {
runTest(tcase, node);
- } else if (nodename.equals("result")) {}
+ } else if (nodename.equals("result")) {
+ //nop
+ }
}
@@ -172,6 +200,8 @@ public class TestConverter extends AbstractLogEnabled {
* If the test has a result specified it is checked.
* This creates an XSLTInputHandler to provide the input
* for FOP and writes the data out to an XML are tree.
+ * @param testcase Test case to run
+ * @param test Test
*/
protected void runTest(Node testcase, Node test) {
String id = test.getAttributes().getNamedItem("id").getNodeValue();
@@ -193,8 +223,8 @@ public class TestConverter extends AbstractLogEnabled {
if (xslNode != null) {
xsl = xslNode.getNodeValue();
}
- getLogger().debug("converting xml:" + xml + " and xsl:" +
- xsl + " to area tree");
+ getLogger().debug("converting xml:" + xml + " and xsl:"
+ + xsl + " to area tree");
try {
File xmlFile = new File(baseDir + "/" + xml);
@@ -229,7 +259,7 @@ public class TestConverter extends AbstractLogEnabled {
driver.setRenderer(Driver.RENDER_XML);
}
- HashMap rendererOptions = new HashMap();
+ Map rendererOptions = new java.util.HashMap();
rendererOptions.put("fineDetail", new Boolean(false));
rendererOptions.put("consistentOutput", new Boolean(true));
driver.getRenderer().setOptions(rendererOptions);
@@ -239,8 +269,8 @@ public class TestConverter extends AbstractLogEnabled {
if (outname.endsWith(".xml")) {
outname = outname.substring(0, outname.length() - 4);
}
- driver.setOutputStream(new BufferedOutputStream(
- new FileOutputStream(new File(destdir,
+ driver.setOutputStream(new java.io.BufferedOutputStream(
+ new java.io.FileOutputStream(new File(destdir,
outname + (outputPDF ? ".pdf" : ".at.xml")))));
getLogger().debug("ddir:" + destdir + " on:" + outname + ".pdf");
driver.render(parser, inputHandler.getInputSource());
@@ -260,15 +290,17 @@ public class TestConverter extends AbstractLogEnabled {
/**
* Compare files.
- * Returns true if equal.
+ * @param f1 first file
+ * @param f2 second file
+ * @return true if equal
*/
protected boolean compareFiles(File f1, File f2) {
- if(f1.length() != f2.length()) {
+ if (f1.length() != f2.length()) {
return false;
}
try {
- InputStream is1 = new BufferedInputStream(new FileInputStream(f1));
- InputStream is2 = new BufferedInputStream(new FileInputStream(f2));
+ InputStream is1 = new java.io.BufferedInputStream(new java.io.FileInputStream(f1));
+ InputStream is2 = new java.io.BufferedInputStream(new java.io.FileInputStream(f2));
while (true) {
int ch1 = is1.read();
int ch2 = is2.read();
@@ -280,12 +312,14 @@ public class TestConverter extends AbstractLogEnabled {
return false;
}
}
- } catch (Exception e) {}
+ } catch (Exception e) {
+ getLogger().error("Error while comparing files", e);
+ }
return false;
}
- public void setParserFeatures(XMLReader parser) throws FOPException {
+ private void setParserFeatures(XMLReader parser) throws FOPException {
try {
parser.setFeature("http://xml.org/sax/features/namespace-prefixes",
true);
@@ -295,7 +329,7 @@ public class TestConverter extends AbstractLogEnabled {
}
}
- protected Node locateResult(Node testcase, String id) {
+ private Node locateResult(Node testcase, String id) {
NodeList cases = testcase.getChildNodes();
for (int count = 0; count < cases.getLength(); count++) {
Node node = cases.item(count);
diff --git a/src/org/apache/fop/tools/anttasks/Compare.java b/src/org/apache/fop/tools/anttasks/Compare.java
index 78908b04f..f4feaa3f3 100644
--- a/src/org/apache/fop/tools/anttasks/Compare.java
+++ b/src/org/apache/fop/tools/anttasks/Compare.java
@@ -1,35 +1,44 @@
/*
* $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * Copyright (C) 2001-2003 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
package org.apache.fop.tools.anttasks;
+import java.util.Date;
+import java.util.List;
+import java.util.StringTokenizer;
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
-import java.util.*;
-import java.io.*;
-import org.apache.tools.ant.Task;
import org.apache.tools.ant.BuildException;
import java.text.DateFormat;
/**
* This class is an extension of Ant, a script utility from
- * jakarta.apache.org.
- * It provides methods to compare two files
+ * http://ant.apache.org.
+ * It provides methods to compare two files.
*/
public class Compare {
+
+ private static final boolean IDENTICAL_FILES = true;
+ private static final boolean NOTIDENTICAL_FILES = false;
+
private String referenceDirectory, testDirectory;
private String[] filenameList;
private String filenames;
- private static boolean IDENTICAL_FILES = true;
- private static boolean NOTIDENTICAL_FILES = false;
private BufferedInputStream oldfileInput;
private BufferedInputStream newfileInput;
- // sets directory for test files
+ /**
+ * Sets directory for test files.
+ * @param testDirectory the test directory
+ */
public void setTestDirectory(String testDirectory) {
if (!(testDirectory.endsWith("/") | testDirectory.endsWith("\\"))) {
testDirectory += File.separator;
@@ -37,7 +46,10 @@ public class Compare {
this.testDirectory = testDirectory;
}
- // sets directory for reference files
+ /**
+ * Sets directory for reference files.
+ * @param referenceDirectory the reference directory
+ */
public void setReferenceDirectory(String referenceDirectory) {
if (!(referenceDirectory.endsWith("/")
| referenceDirectory.endsWith("\\"))) {
@@ -46,9 +58,13 @@ public class Compare {
this.referenceDirectory = referenceDirectory;
}
+ /**
+ * Sets the comma-separated list of files to process.
+ * @param filenames list of files, comma-separated
+ */
public void setFilenames(String filenames) {
StringTokenizer tokens = new StringTokenizer(filenames, ",");
- ArrayList filenameListTmp = new ArrayList(20);
+ List filenameListTmp = new java.util.ArrayList(20);
while (tokens.hasMoreTokens()) {
filenameListTmp.add(tokens.nextToken());
}
@@ -59,9 +75,9 @@ public class Compare {
private boolean compareBytes(File oldFile, File newFile) {
try {
oldfileInput =
- new BufferedInputStream(new FileInputStream(oldFile));
+ new BufferedInputStream(new java.io.FileInputStream(oldFile));
newfileInput =
- new BufferedInputStream(new FileInputStream(newFile));
+ new BufferedInputStream(new java.io.FileInputStream(newFile));
int charactO = 0;
int charactN = 0;
boolean identical = true;
@@ -104,27 +120,32 @@ public class Compare {
}
}
- public void writeHeader(PrintWriter results) {
+ private void writeHeader(PrintWriter results) {
String dateTime = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
DateFormat.MEDIUM).format(new Date());
results.println("<html><head><title>Test Results</title></head><body>\n");
results.println("<h2>Compare Results<br>");
results.println("<font size='1'>created " + dateTime
+ "</font></h2>");
- results.println("<table cellpadding='10' border='2'><thead><th align='center'>reference file</th><th align='center'>test file</th>"
+ results.println("<table cellpadding='10' border='2'><thead>"
+ + "<th align='center'>reference file</th>"
+ + "<th align='center'>test file</th>"
+ "<th align='center'>identical?</th></thead>");
}
- // main method of task compare
+ /**
+ * Main method of task compare
+ * @throws BuildException If the execution fails.
+ */
public void execute() throws BuildException {
boolean identical = false;
File oldFile;
File newFile;
try {
PrintWriter results =
- new PrintWriter(new FileWriter("results.html"), true);
+ new PrintWriter(new java.io.FileWriter("results.html"), true);
this.writeHeader(results);
for (int i = 0; i < filenameList.length; i++) {
oldFile = new File(referenceDirectory + filenameList[i]);
diff --git a/src/org/apache/fop/tools/anttasks/RunTest.java b/src/org/apache/fop/tools/anttasks/RunTest.java
index 78d19ca07..272bb645c 100644
--- a/src/org/apache/fop/tools/anttasks/RunTest.java
+++ b/src/org/apache/fop/tools/anttasks/RunTest.java
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * Copyright (C) 2001-2003 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
@@ -8,22 +8,19 @@
package org.apache.fop.tools.anttasks;
// Ant
-import org.apache.tools.ant.*;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
-import java.io.*;
-import java.lang.reflect.*;
+// Java
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.net.URLClassLoader;
import java.net.URL;
import java.net.MalformedURLException;
-import java.util.*;
+import java.util.Iterator;
+import java.util.Map;
-import javax.xml.parsers.*;
-
-import org.w3c.dom.*;
-import org.xml.sax.XMLReader;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
/**
* Testing ant task.
@@ -32,33 +29,48 @@ import org.xml.sax.SAXParseException;
* and check the results.
*/
public class RunTest extends Task {
- String basedir;
- String testsuite = "";
- String referenceJar = "";
- String refVersion = "";
-
- public RunTest() {}
+
+ private String basedir;
+ private String testsuite = "";
+ private String referenceJar = "";
+ private String refVersion = "";
+ /**
+ * Sets the test suite name.
+ * @param str name of the test suite
+ */
public void setTestSuite(String str) {
testsuite = str;
}
+ /**
+ * Sets the base directory.
+ * @param str base directory
+ */
public void setBasedir(String str) {
basedir = str;
}
+ /**
+ * Sets the reference directory.
+ * @param str reference directory
+ */
public void setReference(String str) {
referenceJar = str;
}
+ /**
+ * Sets the reference version.
+ * @param str reference version
+ */
public void setRefVersion(String str) {
refVersion = str;
}
/**
- * Execute this ant task.
* This creates the reference output, if required, then tests
* the current build.
+ * @see org.apache.tools.ant.Task#execute()
*/
public void execute() throws BuildException {
runReference();
@@ -76,14 +88,14 @@ public class RunTest extends Task {
ClassLoader loader = new URLClassLoader(new URL[] {
new URL("file:build/fop.jar")
});
- HashMap diff = runConverter(loader, "areatree",
+ Map diff = runConverter(loader, "areatree",
"reference/output/");
- if (diff != null &&!diff.isEmpty()) {
+ if (diff != null && !diff.isEmpty()) {
System.out.println("====================================");
System.out.println("The following files differ:");
boolean broke = false;
for (Iterator keys = diff.keySet().iterator();
- keys.hasNext(); ) {
+ keys.hasNext();) {
Object fname = keys.next();
Boolean pass = (Boolean)diff.get(fname);
System.out.println("file: " + fname
@@ -107,6 +119,7 @@ public class RunTest extends Task {
* run and then checks the version of the reference jar against
* the version required.
* The reference output is then created.
+ * @throws BuildException if an error occurs
*/
protected void runReference() throws BuildException {
// check not already done
@@ -124,7 +137,7 @@ public class RunTest extends Task {
try {
Class cla = Class.forName("org.apache.fop.apps.Options",
true, loader);
- Object opts = cla.newInstance();
+ /*Object opts =*/ cla.newInstance();
cla = Class.forName("org.apache.fop.apps.Version", true,
loader);
Method get = cla.getMethod("getVersion", new Class[]{});
@@ -164,12 +177,15 @@ public class RunTest extends Task {
* then runs the test suite for the current test suite
* file in the base directory.
* @param loader the class loader to use to run the tests with
+ * @param dest destination directory
+ * @param compDir comparison directory
+ * @return A Map with differences
*/
- protected HashMap runConverter(ClassLoader loader, String dest,
+ protected Map runConverter(ClassLoader loader, String dest,
String compDir) {
String converter = "org.apache.fop.tools.TestConverter";
- HashMap diff = null;
+ Map diff = null;
try {
Class cla = Class.forName(converter, true, loader);
Object tc = cla.newInstance();
@@ -185,7 +201,7 @@ public class RunTest extends Task {
meth = cla.getMethod("runTests", new Class[] {
String.class, String.class, String.class
});
- diff = (HashMap)meth.invoke(tc, new Object[] {
+ diff = (Map)meth.invoke(tc, new Object[] {
testsuite, dest, compDir
});
} catch (Exception e) {
diff --git a/src/org/apache/fop/tools/anttasks/SerializeHyphPattern.java b/src/org/apache/fop/tools/anttasks/SerializeHyphPattern.java
index b8f3a8808..4a95fc40e 100644
--- a/src/org/apache/fop/tools/anttasks/SerializeHyphPattern.java
+++ b/src/org/apache/fop/tools/anttasks/SerializeHyphPattern.java
@@ -1,22 +1,22 @@
/*
* $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * Copyright (C) 2001-2003 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
package org.apache.fop.tools.anttasks;
-// package org.apache.tools.ant.taskdefs;
+// Java
+import java.io.File;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+// Ant
import org.apache.tools.ant.taskdefs.MatchingTask;
import org.apache.tools.ant.DirectoryScanner;
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import org.xml.sax.SAXException;
-// fop
+// FOP
import org.apache.fop.layout.hyphenation.HyphenationTree;
import org.apache.fop.layout.hyphenation.HyphenationException;
@@ -30,7 +30,7 @@ public class SerializeHyphPattern extends MatchingTask {
private boolean errorDump = false;
/**
- * Main method, which is called by ant.
+ * @see org.apache.tools.ant.Task#execute()
*/
public void execute() throws org.apache.tools.ant.BuildException {
DirectoryScanner ds = this.getDirectoryScanner(sourceDir);
@@ -42,8 +42,8 @@ public class SerializeHyphPattern extends MatchingTask {
/**
- * Sets the source directory
- *
+ * Sets the source directory.
+ * @param sourceDir source directory
*/
public void setSourceDir(String sourceDir) {
File dir = new File(sourceDir);
@@ -57,7 +57,7 @@ public class SerializeHyphPattern extends MatchingTask {
/**
* Sets the target directory
- *
+ * @param targetDir target directory
*/
public void setTargetDir(String targetDir) {
File dir = new File(targetDir);
@@ -65,8 +65,8 @@ public class SerializeHyphPattern extends MatchingTask {
}
/**
- * more error information
- *
+ * Controls the amount of error information dumped.
+ * @param errorDump True if more error info should be provided
*/
public void setErrorDump(boolean errorDump) {
this.errorDump = errorDump;
@@ -80,7 +80,7 @@ public class SerializeHyphPattern extends MatchingTask {
private void processFile(String filename) {
File infile = new File(sourceDir, filename + ".xml");
File outfile = new File(targetDir, filename + ".hyp");
- long outfileLastModified = outfile.lastModified();
+ //long outfileLastModified = outfile.lastModified();
boolean startProcess = true;
startProcess = rebuild(infile, outfile);
@@ -110,8 +110,9 @@ public class SerializeHyphPattern extends MatchingTask {
}
// serialize class
try {
- ObjectOutputStream out =
- new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(outfile)));
+ ObjectOutputStream out = new ObjectOutputStream(
+ new java.io.BufferedOutputStream(
+ new java.io.FileOutputStream(outfile)));
out.writeObject(hTree);
out.close();
} catch (IOException ioe) {
diff --git a/src/org/apache/fop/tools/xslt/TraxTransform.java b/src/org/apache/fop/tools/xslt/TraxTransform.java
index d997c1a27..1d9f84dcc 100644
--- a/src/org/apache/fop/tools/xslt/TraxTransform.java
+++ b/src/org/apache/fop/tools/xslt/TraxTransform.java
@@ -1,38 +1,48 @@
/*
* $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * Copyright (C) 2001-2003 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
package org.apache.fop.tools.xslt;
-import javax.xml.transform.*;
-
-import java.io.FileInputStream;
import java.io.InputStream;
import java.io.Writer;
+import java.util.Map;
+
+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 java.util.Hashtable;
import org.w3c.dom.Document;
/**
* Handles xslt tranformations via Trax (xalan2)
*/
-
public class TraxTransform {
/**
* Cache of compiled stylesheets (filename, StylesheetRoot)
*/
- private static Hashtable _stylesheetCache = new Hashtable();
+ private static Map stylesheetCache = new java.util.Hashtable();
+ /**
+ * Gets a Trax transformer
+ * @param xsltFilename Filename of the XSLT file
+ * @param cache True, if caching of the stylesheet is allowed
+ * @return Transformer the Trax transformer
+ */
public static Transformer getTransformer(String xsltFilename,
boolean cache) {
try {
- if (cache && _stylesheetCache.containsKey(xsltFilename)) {
+ if (cache && stylesheetCache.containsKey(xsltFilename)) {
Templates cachedStylesheet =
- (Templates)_stylesheetCache.get(xsltFilename);
+ (Templates)stylesheetCache.get(xsltFilename);
return cachedStylesheet.newTransformer();
}
@@ -49,7 +59,7 @@ public class TraxTransform {
Templates compiledSheet = factory.newTemplates(xslSheet);
if (cache) {
- _stylesheetCache.put(xsltFilename, compiledSheet);
+ stylesheetCache.put(xsltFilename, compiledSheet);
}
return compiledSheet.newTransformer();
} catch (TransformerConfigurationException ex) {
@@ -59,6 +69,12 @@ public class TraxTransform {
}
+ /**
+ * Transforms an XML file using XSLT.
+ * @param xmlSource Filename of the source XML file
+ * @param xslURL Filename of the XSLT filename
+ * @param outputFile Target filename
+ */
public static void transform(String xmlSource, String xslURL,
String outputFile) {
transform(new javax.xml.transform.stream.StreamSource(xmlSource),
@@ -66,6 +82,12 @@ public class TraxTransform {
new javax.xml.transform.stream.StreamResult(outputFile));
}
+ /**
+ * Transforms an XML file using XSLT.
+ * @param xmlSource Source DOM Document
+ * @param xslURL Filename of the XSLT filename
+ * @param outputFile Target filename
+ */
public static void transform(Document xmlSource, String xslURL,
String outputFile) {
@@ -75,6 +97,12 @@ public class TraxTransform {
}
+ /**
+ * Transforms an XML file using XSLT.
+ * @param xmlSource Filename of the source XML file
+ * @param xslURL Filename of the XSLT filename
+ * @param output Target Writer instance
+ */
public static void transform(String xmlSource, String xslURL,
Writer output) {
transform(new javax.xml.transform.stream.StreamSource(xmlSource),
@@ -82,6 +110,12 @@ public class TraxTransform {
new javax.xml.transform.stream.StreamResult(output));
}
+ /**
+ * Transforms an XML file using XSLT.
+ * @param xmlSource Source DOM Document
+ * @param xsl Filename of the XSLT filename
+ * @param outputDoc Target DOM document
+ */
public static void transform(Document xmlSource, InputStream xsl,
Document outputDoc) {
transform(new javax.xml.transform.dom.DOMSource(xmlSource),
@@ -89,6 +123,12 @@ public class TraxTransform {
new javax.xml.transform.dom.DOMResult(outputDoc));
}
+ /**
+ * Transforms an XML file using XSLT.
+ * @param xmlSource XML Source
+ * @param xslSource XSLT Source
+ * @param result Target Result
+ */
public static void transform(Source xmlSource, Source xslSource,
Result result) {
try {
diff --git a/src/org/apache/fop/tools/xslt/XSLTransform.java b/src/org/apache/fop/tools/xslt/XSLTransform.java
index c764af22e..a7e9a1d57 100644
--- a/src/org/apache/fop/tools/xslt/XSLTransform.java
+++ b/src/org/apache/fop/tools/xslt/XSLTransform.java
@@ -1,18 +1,29 @@
/*
* $Id$
- * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * Copyright (C) 2001-2003 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
package org.apache.fop.tools.xslt;
-import java.io.*;
-import java.lang.reflect.*;
-
+import java.io.InputStream;
+import java.io.Writer;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+/**
+ * Class for transforming XML using XSLT. Wraps either Trax (JAXP) or Xalan 1.x.
+ */
public class XSLTransform {
+ /**
+ * Transforms an XML file using XSLT.
+ * @param xmlSource Filename of the source XML file
+ * @param xslURL Filename of the XSLT filename
+ * @param outputFile Target filename
+ * @throws Exception If the conversion fails
+ */
public static void transform(String xmlSource, String xslURL,
String outputFile) throws Exception {
Class[] argTypes = {
@@ -24,6 +35,13 @@ public class XSLTransform {
transform(params, argTypes);
}
+ /**
+ * Transforms an XML file using XSLT.
+ * @param xmlSource Source DOM Document
+ * @param xslURL Filename of the XSLT filename
+ * @param outputFile Target filename
+ * @throws Exception If the conversion fails
+ */
public static void transform(org.w3c.dom.Document xmlSource,
String xslURL,
String outputFile) throws Exception {
@@ -38,6 +56,13 @@ public class XSLTransform {
}
+ /**
+ * Transforms an XML file using XSLT.
+ * @param xmlSource Filename of the source XML file
+ * @param xslURL Filename of the XSLT filename
+ * @param outputWriter Target Writer instance
+ * @throws Exception If the conversion fails
+ */
public static void transform(String xmlSource, String xslURL,
Writer outputWriter) throws Exception {
Class[] argTypes = {
@@ -50,6 +75,13 @@ public class XSLTransform {
}
+ /**
+ * Transforms an XML file using XSLT.
+ * @param xmlSource Source DOM Document
+ * @param xsl Filename of the XSLT filename
+ * @param outputDoc Target DOM document
+ * @throws Exception If the conversion fails
+ */
public static void transform(org.w3c.dom.Document xmlSource,
InputStream xsl,
org.w3c.dom.Document outputDoc) throws Exception {
@@ -97,7 +129,9 @@ public class XSLTransform {
Class.forName("org.apache.fop.tools.xslt.TraxTransform");
return transformer;
- } catch (ClassNotFoundException ex) {}
+ } catch (ClassNotFoundException ex) {
+ //nop
+ }
// otherwise, try regular xalan1
try {
Class transformer =
@@ -106,7 +140,9 @@ public class XSLTransform {
transformer =
Class.forName("org.apache.fop.tools.xslt.Xalan1Transform");
return transformer;
- } catch (ClassNotFoundException ex) {}
+ } catch (ClassNotFoundException ex) {
+ //nop
+ }
return null;
}