diff options
author | Glen Mazza <gmazza@apache.org> | 2004-06-19 13:35:33 +0000 |
---|---|---|
committer | Glen Mazza <gmazza@apache.org> | 2004-06-19 13:35:33 +0000 |
commit | b7326926ad01239cbe89e64bf76d7ccc0cfb78cf (patch) | |
tree | 460a6260b9e6d6fad7a5d41ffecd6863793897af /src/java | |
parent | 7689679503c48b854c84632c172a97bdf2dcd888 (diff) | |
download | xmlgraphics-fop-b7326926ad01239cbe89e64bf76d7ccc0cfb78cf.tar.gz xmlgraphics-fop-b7326926ad01239cbe89e64bf76d7ccc0cfb78cf.zip |
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
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197737 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java')
-rw-r--r-- | src/java/org/apache/fop/apps/Document.java | 77 | ||||
-rw-r--r-- | src/java/org/apache/fop/apps/Driver.java | 18 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/FOInputHandler.java | 51 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/FONode.java | 31 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/FOTreeHandler.java | 48 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java | 13 | ||||
-rw-r--r-- | src/java/org/apache/fop/render/awt/AWTRenderer.java | 1 | ||||
-rw-r--r-- | src/java/org/apache/fop/render/mif/MIFHandler.java | 8 | ||||
-rw-r--r-- | src/java/org/apache/fop/render/rtf/RTFHandler.java | 8 | ||||
-rw-r--r-- | src/java/org/apache/fop/render/svg/SVGRenderer.java | 1 |
10 files changed, 83 insertions, 173 deletions
diff --git a/src/java/org/apache/fop/apps/Document.java b/src/java/org/apache/fop/apps/Document.java deleted file mode 100644 index a910084d6..000000000 --- a/src/java/org/apache/fop/apps/Document.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 1999-2004 The Apache Software Foundation. - * - * 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 - * - * 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. - */ - -/* $Id$ */ - -package org.apache.fop.apps; - -// FOP -import org.apache.fop.fo.FOInputHandler; -import org.apache.fop.render.Renderer; - -// SAX -import org.xml.sax.SAXException; - -/** - * Class storing information for the FOP Document being processed, and managing - * the processing of it. - */ -public class Document { - - /** The parent Driver object */ - private Driver driver; - - /** The Renderer being used for this document */ - protected Renderer renderer; - - /** - * Structure handler used to notify structure - * events such as start end element. - */ - public FOInputHandler foInputHandler; - - /** - * Main constructor - * @param driver the Driver object that is the "parent" of this Document - */ - public Document(Driver driver) { - this.driver = driver; - } - - /** - * Public accessor for the parent Driver of this Document - * @return the parent Driver for this Document - */ - public Driver getDriver() { - return driver; - } - - /** - * Get the renderer for this document - * @return the renderer for this document - */ - public Renderer getRenderer() { - return renderer; - } - - /** - * @return the FOInputHandler for parsing this FO Tree - */ - public FOInputHandler getFOInputHandler() { - return foInputHandler; - } - -} diff --git a/src/java/org/apache/fop/apps/Driver.java b/src/java/org/apache/fop/apps/Driver.java index ca308ed5a..a5376877c 100644 --- a/src/java/org/apache/fop/apps/Driver.java +++ b/src/java/org/apache/fop/apps/Driver.java @@ -194,8 +194,6 @@ public class Driver { private Log log = null; private FOUserAgent userAgent = null; - private Document currentDocument = null; - /** * Main constructor for the Driver class. */ @@ -469,30 +467,20 @@ public class Driver { 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); diff --git a/src/java/org/apache/fop/fo/FOInputHandler.java b/src/java/org/apache/fop/fo/FOInputHandler.java index 8616185dd..270b9a327 100644 --- a/src/java/org/apache/fop/fo/FOInputHandler.java +++ b/src/java/org/apache/fop/fo/FOInputHandler.java @@ -21,10 +21,10 @@ package org.apache.fop.fo; // 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.Flow; 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 @@ import org.xml.sax.SAXException; */ 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 @@ public abstract class FOInputHandler { /** * 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 @@ public abstract class FOInputHandler { } /** - * 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 @@ public abstract class FOInputHandler { } /** - * 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; } /** diff --git a/src/java/org/apache/fop/fo/FONode.java b/src/java/org/apache/fop/fo/FONode.java index 15593de46..eb186a08b 100644 --- a/src/java/org/apache/fop/fo/FONode.java +++ b/src/java/org/apache/fop/fo/FONode.java @@ -20,13 +20,13 @@ package org.apache.fop.fo; // 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.util.CharUtilities; 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 @@ public abstract class FONode { /** 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 @@ public abstract class FONode { } /** + * 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 @@ public abstract class FONode { * @return the logger */ public Log getLogger() { - return getFOInputHandler().getDriver().getLogger(); + return log; } /** @@ -201,15 +215,6 @@ public abstract class FONode { } /** - * 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(); - } - - /** * This is a hook for an FOTreeVisitor subclass to be able to access * this object. * @param fotv the FOTreeVisitor subclass that can access this object. diff --git a/src/java/org/apache/fop/fo/FOTreeHandler.java b/src/java/org/apache/fop/fo/FOTreeHandler.java index 71433631b..bc1deccd9 100644 --- a/src/java/org/apache/fop/fo/FOTreeHandler.java +++ b/src/java/org/apache/fop/fo/FOTreeHandler.java @@ -28,7 +28,7 @@ import java.util.Iterator; 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.ContentLayoutManager; 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 @@ public class FOTreeHandler extends FOInputHandler { /** 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 @@ public class FOTreeHandler extends FOInputHandler { 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 @@ public class FOTreeHandler extends FOInputHandler { } } - getAreaTree().addBookmarksToAreaTree(pageSequence.getRoot().getBookmarks()); - formatPageSequence(pageSequence, getAreaTree()); + areaTree.addBookmarksToAreaTree(pageSequence.getRoot().getBookmarks()); + formatPageSequence(pageSequence, areaTree); } /** @@ -609,12 +616,5 @@ public class FOTreeHandler extends FOInputHandler { */ public void endPageNumber(PageNumber pagenum) { } - - /** - * @return the current Area Tree object - */ - public AreaTree getAreaTree() { - return areaTree; - } - + } diff --git a/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java b/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java index 905f08dba..592c1b498 100644 --- a/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java +++ b/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java @@ -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; @@ -43,6 +48,14 @@ public class SinglePageMasterReference extends PageMasterReference } /** + * @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); + } + + /** * @see org.apache.fop.fo.pagination.SubSequenceSpecifier */ public String getNextPageMasterName(boolean isOddPage, diff --git a/src/java/org/apache/fop/render/awt/AWTRenderer.java b/src/java/org/apache/fop/render/awt/AWTRenderer.java index 2e727d17f..f4f934528 100644 --- a/src/java/org/apache/fop/render/awt/AWTRenderer.java +++ b/src/java/org/apache/fop/render/awt/AWTRenderer.java @@ -46,7 +46,6 @@ import java.util.Map; 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; diff --git a/src/java/org/apache/fop/render/mif/MIFHandler.java b/src/java/org/apache/fop/render/mif/MIFHandler.java index 4bfd23f3a..09f2b6fd1 100644 --- a/src/java/org/apache/fop/render/mif/MIFHandler.java +++ b/src/java/org/apache/fop/render/mif/MIFHandler.java @@ -22,7 +22,7 @@ package org.apache.fop.render.mif; 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 @@ public class MIFHandler extends FOInputHandler { /** the MIFFile instance */ protected MIFFile mifFile; + /** the OutputStream to write to */ protected OutputStream outStream; @@ -70,10 +71,11 @@ public class MIFHandler extends FOInputHandler { /** * 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); } diff --git a/src/java/org/apache/fop/render/rtf/RTFHandler.java b/src/java/org/apache/fop/render/rtf/RTFHandler.java index 3f508ea35..21587b77c 100644 --- a/src/java/org/apache/fop/render/rtf/RTFHandler.java +++ b/src/java/org/apache/fop/render/rtf/RTFHandler.java @@ -27,6 +27,7 @@ import java.util.Iterator; 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.Property; 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 @@ public class RTFHandler extends FOInputHandler { /** * 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; diff --git a/src/java/org/apache/fop/render/svg/SVGRenderer.java b/src/java/org/apache/fop/render/svg/SVGRenderer.java index 7c9e3425b..fd7c855cf 100644 --- a/src/java/org/apache/fop/render/svg/SVGRenderer.java +++ b/src/java/org/apache/fop/render/svg/SVGRenderer.java @@ -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; |