gmazza 2004/06/19 06:35:34 Modified: src/java/org/apache/fop/apps Driver.java src/java/org/apache/fop/fo FOInputHandler.java FONode.java FOTreeHandler.java src/java/org/apache/fop/fo/pagination SinglePageMasterReference.java src/java/org/apache/fop/render/awt AWTRenderer.java src/java/org/apache/fop/render/mif MIFHandler.java src/java/org/apache/fop/render/rtf RTFHandler.java src/java/org/apache/fop/render/svg SVGRenderer.java Removed: src/java/org/apache/fop/apps Document.java Log: 1.) FOInputHandler constructors switched from Document to FOUserAgent, Renderer added to FOTreeHandler interface. 2.) Apps.Document dropped. 3.) Validity checking added to fo.pagination.SinglePageMasterReference Revision Changes Path 1.70 +4 -16 xml-fop/src/java/org/apache/fop/apps/Driver.java Index: Driver.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v retrieving revision 1.69 retrieving revision 1.70 diff -u -r1.69 -r1.70 --- Driver.java 18 Jun 2004 11:43:25 -0000 1.69 +++ Driver.java 19 Jun 2004 13:35:33 -0000 1.70 @@ -194,8 +194,6 @@ private Log log = null; private FOUserAgent userAgent = null; - private Document currentDocument = null; - /** * Main constructor for the Driver class. */ @@ -469,30 +467,20 @@ validateOutputStream(); } - /** Document creation is hard-wired for now, but needs to be made - accessible through the API and/or configuration */ - if (currentDocument == null) { - currentDocument = new Document(this); - } - // TODO: - do this stuff in a better way // PIJ: I guess the structure handler should be created by the renderer. if (rendererType == RENDER_MIF) { - foInputHandler = new MIFHandler(currentDocument, stream); + foInputHandler = new MIFHandler(userAgent, stream); } else if (rendererType == RENDER_RTF) { - foInputHandler = new RTFHandler(currentDocument, stream); + foInputHandler = new RTFHandler(userAgent, stream); } else { if (renderer == null) { throw new IllegalStateException( "Renderer not set when using standard foInputHandler"); } - currentDocument.renderer = renderer; - foInputHandler = new FOTreeHandler(currentDocument, stream, true); + foInputHandler = new FOTreeHandler(userAgent, renderer, stream, true); } - currentDocument.foInputHandler = foInputHandler; - - foInputHandler.setLogger(getLogger()); treeBuilder.setFOInputHandler(foInputHandler); 1.21 +17 -36 xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java Index: FOInputHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOInputHandler.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- FOInputHandler.java 18 Jun 2004 04:13:53 -0000 1.20 +++ FOInputHandler.java 19 Jun 2004 13:35:33 -0000 1.21 @@ -21,10 +21,10 @@ // Java import java.util.HashSet; import java.util.Set; +import org.xml.sax.SAXException; -// FOP -import org.apache.fop.apps.Document; -import org.apache.fop.apps.Driver; +// Apache +import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.FOPException; import org.apache.fop.area.AreaTree; import org.apache.fop.fo.flow.BasicLink; @@ -47,8 +47,8 @@ import org.apache.fop.fo.pagination.PageSequence; import org.apache.fop.fonts.FontInfo; import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; -import org.xml.sax.SAXException; /** * Abstract class defining what should be done with SAX events that map to @@ -63,20 +63,18 @@ */ public abstract class FOInputHandler { - /** - * The Document object that is controlling the FO Tree being built + /** + * The FOUserAgent for this process */ - public Document doc = null; + private FOUserAgent foUserAgent; /** * The Font information relevant for this document */ protected FontInfo fontInfo; - /** - * logging instance - */ - protected Log logger = null; + /** Logger for FOInputHandler-related messages **/ + protected static Log logger = LogFactory.getLog(FOInputHandler.class); /** * The current set of id's in the FO tree. @@ -86,11 +84,10 @@ /** * Main constructor - * @param document the apps.Document implementation that is controlling - * the FO Tree being built + * @param FOUserAgent the apps.FOUserAgent instance for this process */ - public FOInputHandler(Document document) { - doc = document; + public FOInputHandler(FOUserAgent foUserAgent) { + this.foUserAgent = foUserAgent; this.fontInfo = new FontInfo(); } @@ -103,14 +100,6 @@ } /** - * Sets the Commons-Logging instance for this class - * @param logger The Commons-Logging instance - */ - public void setLogger(Log logger) { - this.logger = logger; - } - - /** * Returns the Commons-Logging instance for this class * @return The Commons-Logging instance */ @@ -119,19 +108,11 @@ } /** - * Returns the Document object associated with this FOInputHandler. - * @return the Document object - */ - public Document getDocument() { - return doc; - } - - /** - * Returns the Driver object associated with this FOInputHandler. - * @return the Driver object + * Returns the User Agent object associated with this FOInputHandler. + * @return the User Agent object */ - public Driver getDriver() { - return doc.getDriver(); + public FOUserAgent getUserAgent() { + return foUserAgent; } /** 1.25 +18 -13 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- FONode.java 16 Jun 2004 23:40:58 -0000 1.24 +++ FONode.java 19 Jun 2004 13:35:33 -0000 1.25 @@ -20,13 +20,13 @@ // Java import java.util.ListIterator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; // XML import org.xml.sax.Attributes; import org.xml.sax.Locator; -import org.apache.commons.logging.Log; - // FOP import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; @@ -34,6 +34,8 @@ import org.apache.fop.fo.extensions.ExtensionElementMapping; import org.apache.fop.fo.extensions.svg.SVGElementMapping; + + /** * base class for nodes in the XML tree * @@ -55,6 +57,9 @@ /** Marks column number of this object in the input file **/ public int column; + /** Logger for fo-tree related messages **/ + private static Log log = LogFactory.getLog(FONode.class); + /** * Main constructor. * @param parent parent of this node @@ -76,11 +81,20 @@ } /** + * Recursively goes up the FOTree hierarchy until the fo:root is found, + * which returns the parent FOInputHandler. + * @return the FOInputHandler object that is the parent of the FO Tree + */ + public FOInputHandler getFOInputHandler() { + return parent.getFOInputHandler(); + } + + /** * Returns the user agent for the node. * @return FOUserAgent */ public FOUserAgent getUserAgent() { - return getFOInputHandler().getDriver().getUserAgent(); + return getFOInputHandler().getUserAgent(); } /** @@ -88,7 +102,7 @@ * @return the logger */ public Log getLogger() { - return getFOInputHandler().getDriver().getLogger(); + return log; } /** @@ -198,15 +212,6 @@ */ protected boolean isMarker() { return false; - } - - /** - * Recursively goes up the FOTree hierarchy until the fo:root is found, - * which returns the parent FOInputHandler. - * @return the FOInputHandler object that is the parent of the FO Tree - */ - public FOInputHandler getFOInputHandler() { - return parent.getFOInputHandler(); } /** 1.23 +25 -25 xml-fop/src/java/org/apache/fop/fo/FOTreeHandler.java Index: FOTreeHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeHandler.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- FOTreeHandler.java 18 Jun 2004 04:13:53 -0000 1.22 +++ FOTreeHandler.java 19 Jun 2004 13:35:33 -0000 1.23 @@ -28,7 +28,7 @@ import org.xml.sax.SAXException; // FOP -import org.apache.fop.apps.Document; +import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.FOPException; import org.apache.fop.area.AreaTree; import org.apache.fop.area.Title; @@ -56,6 +56,7 @@ import org.apache.fop.layoutmgr.InlineStackingLayoutManager; import org.apache.fop.layoutmgr.LMiter; import org.apache.fop.layoutmgr.PageLayoutManager; +import org.apache.fop.render.Renderer; /** @@ -99,29 +100,35 @@ /** Useful only for allowing subclasses of AddLMVisitor to be set by those extending FOP **/ private AddLMVisitor addLMVisitor = null; + + /** + * the renderer to use to output the area tree + */ + private Renderer renderer; /** * Main constructor - * @param document the apps.Document implementation that governs this - * FO Tree + * @param userAgent the apps.userAgent implementation that governs + * this FO Tree * @param OutputStream stream to use to output results of renderer - * + * * @param store if true then use the store pages model and keep the - * area tree in memory + * area tree in memory */ - public FOTreeHandler(Document doc, OutputStream stream, boolean store) throws FOPException { - super(doc); - - areaTree = new AreaTree(doc.getRenderer()); + public FOTreeHandler(FOUserAgent userAgent, Renderer renderer, + OutputStream stream, boolean store) throws FOPException { + super(userAgent); + this.renderer = renderer; + areaTree = new AreaTree(renderer); try { - doc.getRenderer().setupFontInfo(fontInfo); + renderer.setupFontInfo(fontInfo); // check that the "any,normal,400" font exists if (!fontInfo.isSetupValid()) { throw new FOPException( - "No default font defined by OutputConverter"); + "No default font defined by OutputConverter"); } - doc.getRenderer().startRenderer(stream); + renderer.startRenderer(stream); } catch (IOException e) { throw new FOPException(e); } @@ -161,8 +168,8 @@ throw new SAXException("Error: No fo:page-sequence child " + "found within fo:root element."); } - getAreaTree().endDocument(); - getDriver().getRenderer().stopRenderer(); + areaTree.endDocument(); + renderer.stopRenderer(); } catch (IOException ex) { throw new SAXException(ex); } @@ -226,8 +233,8 @@ } } - getAreaTree().addBookmarksToAreaTree(pageSequence.getRoot().getBookmarks()); - formatPageSequence(pageSequence, getAreaTree()); + areaTree.addBookmarksToAreaTree(pageSequence.getRoot().getBookmarks()); + formatPageSequence(pageSequence, areaTree); } /** @@ -609,12 +616,5 @@ */ public void endPageNumber(PageNumber pagenum) { } - - /** - * @return the current Area Tree object - */ - public AreaTree getAreaTree() { - return areaTree; - } - + } 1.6 +13 -0 xml-fop/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java Index: SinglePageMasterReference.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- SinglePageMasterReference.java 12 Jun 2004 23:18:52 -0000 1.5 +++ SinglePageMasterReference.java 19 Jun 2004 13:35:33 -0000 1.6 @@ -18,6 +18,11 @@ package org.apache.fop.fo.pagination; +// XML +import org.xml.sax.Attributes; +import org.xml.sax.Locator; + +// FOP import org.apache.fop.fo.FONode; import org.apache.fop.fo.FOTreeVisitor; @@ -40,6 +45,14 @@ public SinglePageMasterReference(FONode parent) { super(parent); this.state = FIRST; + } + + /** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + * XSL/FOP Content Model: empty + */ + protected void validateChildNode(Locator loc, String nsURI, String localName) { + invalidChildError(loc, nsURI, localName); } /** 1.25 +0 -1 xml-fop/src/java/org/apache/fop/render/awt/AWTRenderer.java Index: AWTRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/awt/AWTRenderer.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- AWTRenderer.java 15 Jun 2004 06:26:56 -0000 1.24 +++ AWTRenderer.java 19 Jun 2004 13:35:33 -0000 1.25 @@ -46,7 +46,6 @@ import java.util.Vector; import org.apache.fop.fonts.FontInfo; -import org.apache.fop.apps.Document; import org.apache.fop.apps.FOPException; import org.apache.fop.apps.InputHandler; import org.apache.fop.area.Area; 1.10 +6 -4 xml-fop/src/java/org/apache/fop/render/mif/MIFHandler.java Index: MIFHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/mif/MIFHandler.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- MIFHandler.java 18 Jun 2004 04:13:53 -0000 1.9 +++ MIFHandler.java 19 Jun 2004 13:35:33 -0000 1.10 @@ -22,7 +22,7 @@ import java.io.IOException; import java.io.OutputStream; -import org.apache.fop.apps.Document; +import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.FOPException; import org.apache.fop.fo.Constants; import org.apache.fop.fo.FOInputHandler; @@ -61,6 +61,7 @@ /** the MIFFile instance */ protected MIFFile mifFile; + /** the OutputStream to write to */ protected OutputStream outStream; @@ -70,10 +71,11 @@ /** * Creates a new MIF handler on a given OutputStream. + * @param ua FOUserAgent instance for this process * @param os OutputStream to write to */ - public MIFHandler(Document doc, OutputStream os) { - super(doc); + public MIFHandler(FOUserAgent ua, OutputStream os) { + super(ua); outStream = os; FontSetup.setup(fontInfo, null); } 1.27 +5 -5 xml-fop/src/java/org/apache/fop/render/rtf/RTFHandler.java Index: RTFHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/rtf/RTFHandler.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- RTFHandler.java 18 Jun 2004 04:13:54 -0000 1.26 +++ RTFHandler.java 19 Jun 2004 13:35:33 -0000 1.27 @@ -27,6 +27,7 @@ import org.apache.commons.logging.impl.SimpleLog; import org.apache.commons.logging.Log; import org.apache.fop.apps.FOPException; +import org.apache.fop.apps.FOUserAgent; import org.apache.fop.fo.FOInputHandler; import org.apache.fop.fo.FObj; import org.apache.fop.fo.flow.BasicLink; @@ -57,7 +58,6 @@ import org.apache.fop.fo.properties.StringProperty; import org.apache.fop.fo.Constants; import org.apache.fop.fo.FOText; -import org.apache.fop.apps.Document; import org.apache.fop.render.rtf.rtflib.rtfdoc.ITableAttributes; import org.apache.fop.render.rtf.rtflib.rtfdoc.IRtfAfterContainer; import org.apache.fop.render.rtf.rtflib.rtfdoc.IRtfBeforeContainer; @@ -122,11 +122,11 @@ /** * Creates a new RTF structure handler. - * @param doc the Document for which this RTFHandler is processing + * @param userAgent the FOUserAgent for this process * @param os OutputStream to write to */ - public RTFHandler(Document doc, OutputStream os) { - super(doc); + public RTFHandler(FOUserAgent userAgent, OutputStream os) { + super(userAgent); this.os = os; bDefer = false; bDeferredExecution = false; 1.16 +0 -1 xml-fop/src/java/org/apache/fop/render/svg/SVGRenderer.java Index: SVGRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/svg/SVGRenderer.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- SVGRenderer.java 15 Jun 2004 06:26:56 -0000 1.15 +++ SVGRenderer.java 19 Jun 2004 13:35:33 -0000 1.16 @@ -18,7 +18,6 @@ package org.apache.fop.render.svg; -import org.apache.fop.apps.Document; import org.apache.fop.apps.FOPException; import org.apache.fop.area.PageViewport; import org.apache.fop.area.Title;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]