diff options
-rw-r--r-- | src/java/org/apache/fop/fo/FONode.java | 27 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/Title.java | 30 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/Unknown.java | 38 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/UnknownXMLObj.java | 48 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/XMLObj.java | 72 |
5 files changed, 152 insertions, 63 deletions
diff --git a/src/java/org/apache/fop/fo/FONode.java b/src/java/org/apache/fop/fo/FONode.java index aac600ba6..5b6e558fa 100644 --- a/src/java/org/apache/fop/fo/FONode.java +++ b/src/java/org/apache/fop/fo/FONode.java @@ -3,34 +3,34 @@ * ============================================================================ * 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 @@ -42,12 +42,12 @@ * (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.fo; // Java @@ -68,7 +68,7 @@ import org.apache.fop.util.CharUtilities; * */ public abstract class FONode { - + /** FO User Agent for this node (for logger etc.)*/ protected FOUserAgent userAgent; /** Parent FO node */ @@ -123,6 +123,11 @@ public abstract class FONode { public void setStructHandler(StructureHandler st) { } + /** + * Do something with the attributes for this element + * @param attlist Collection of attributes passed to us from the parser. + * @throws FOPException for errors or inconsistencies in the attributes + */ public void handleAttrs(Attributes attlist) throws FOPException { } diff --git a/src/java/org/apache/fop/fo/Title.java b/src/java/org/apache/fop/fo/Title.java index 1cbdf9585..4857e0830 100644 --- a/src/java/org/apache/fop/fo/Title.java +++ b/src/java/org/apache/fop/fo/Title.java @@ -3,34 +3,34 @@ * ============================================================================ * 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 @@ -42,12 +42,12 @@ * (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.fo; // FOP @@ -64,13 +64,21 @@ import org.apache.fop.layoutmgr.InlineStackingLayoutManager; import org.apache.fop.layoutmgr.LMiter; /** + * Class modelling the fo:title object. See Sec. 6.4.20 in the XSL-FO Standard. */ public class Title extends FObjMixed { + /** + * @param parent FONode that is the parent of this object + */ public Title(FONode parent) { super(parent); } + /** + * TODO: shouldn't this code be in Layout?? + * @return the Title area + */ public org.apache.fop.area.Title getTitleArea() { org.apache.fop.area.Title title = new org.apache.fop.area.Title(); @@ -94,7 +102,7 @@ public class Title extends FObjMixed { return title; } - public void setup() { + private void setup() { // Common Accessibility Properties AccessibilityProps mAccProps = propMgr.getAccessibilityProps(); diff --git a/src/java/org/apache/fop/fo/Unknown.java b/src/java/org/apache/fop/fo/Unknown.java index 2cff9bf37..b40dd4ec6 100644 --- a/src/java/org/apache/fop/fo/Unknown.java +++ b/src/java/org/apache/fop/fo/Unknown.java @@ -3,34 +3,34 @@ * ============================================================================ * 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 @@ -42,33 +42,45 @@ * (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.fo; /** - * This represents an unknown element. - * For example with unsupported namespaces. + * Class for handling an unknown element, for example one from an unsupported + * namespace. * This prevents any further problems arising from the unknown * data. */ public class Unknown extends FONode { + /** + * Inner class for handling the creation of Unknown objects + */ public static class Maker extends ElementMapping.Maker { + + /** + * @param parent the FONode that is the parent of the object to be + * created + * @return the created Unknown object + */ public FONode make(FONode parent) { return new Unknown(parent); } } + /** + * @param parent FONode that is the parent of this object + */ public Unknown(FONode parent) { super(parent); } - public void setup() { + private void setup() { getLogger().debug("Layout Unknown element"); } } diff --git a/src/java/org/apache/fop/fo/UnknownXMLObj.java b/src/java/org/apache/fop/fo/UnknownXMLObj.java index abb26e402..02a8b87a1 100644 --- a/src/java/org/apache/fop/fo/UnknownXMLObj.java +++ b/src/java/org/apache/fop/fo/UnknownXMLObj.java @@ -3,34 +3,34 @@ * ============================================================================ * 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 @@ -42,44 +42,65 @@ * (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.fo; +/** + * Class for handling generic XML from a namespace not recognized by FOP + */ public class UnknownXMLObj extends XMLObj { private String namespace; + /** + * Inner class for an UnknownXMLObj Maker + */ public static class Maker extends ElementMapping.Maker { private String space; + /** + * Construct the Maker + * @param sp the namespace for this Maker + */ public Maker(String sp) { space = sp; } + /** + * Make an instance + * @param parent FONode that is the parent of the object + * @return the created UnknownXMLObj + */ public FONode make(FONode parent) { return new UnknownXMLObj(parent, space); } } /** - * constructs an unknown xml object (called by Maker). + * Constructs an unknown xml object (called by Maker). * * @param parent the parent formatting object - * @param propertyList the explicit properties of this object + * @param space the namespace for this object */ protected UnknownXMLObj(FONode parent, String space) { super(parent); this.namespace = space; } + /** + * @see XMLObj#getNameSpace + */ public String getNameSpace() { return this.namespace; } + /** + * @see XMLObj#addChild + */ protected void addChild(FONode child) { if (doc == null) { createBasicDocument(); @@ -87,6 +108,9 @@ public class UnknownXMLObj extends XMLObj { super.addChild(child); } + /** + * @see XMLObj#addCharacters + */ protected void addCharacters(char data[], int start, int length) { if (doc == null) { createBasicDocument(); diff --git a/src/java/org/apache/fop/fo/XMLObj.java b/src/java/org/apache/fop/fo/XMLObj.java index 86edd893e..79318d102 100644 --- a/src/java/org/apache/fop/fo/XMLObj.java +++ b/src/java/org/apache/fop/fo/XMLObj.java @@ -3,34 +3,34 @@ * ============================================================================ * 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 @@ -42,12 +42,12 @@ * (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.fo; // Java @@ -63,35 +63,45 @@ import javax.xml.parsers.DocumentBuilderFactory; import org.apache.fop.apps.FOPException; /** - * Generic XML object. - * This is used by xml objects (other than fo) than will build a DOM - * with each element. + * Abstract class modelling generic, non-XSL-FO XML objects. Such objects are + * stored in a DOM. */ public abstract class XMLObj extends FONode { // temp reference for attributes private Attributes attr = null; - + /** DOM element representing this node */ protected Element element; + /** DOM document containing this node */ protected Document doc; /** * * @param parent the parent formatting object - * @param propertyList the explicit properties of this object */ public XMLObj(FONode parent) { super(parent); } + /** + * @param str name of the element + */ public void setName(String str) { name = str; } + /** + * Store the attributes for this element + * @param attlist Collection of attributes passed to us from the parser. + * @throws FOPException for errors in the attributes + */ public void handleAttrs(Attributes attlist) throws FOPException { attr = attlist; } + /** + * @return DOM document representing this foreign XML + */ public Document getDocument() { return doc; } @@ -100,17 +110,29 @@ public abstract class XMLObj extends FONode { return null; } + /** + * @return string containing the namespace for this node + */ public abstract String getNameSpace(); + /** + * @return string containing the namespace for this document (which is the + * same namespace as for this node ??) + */ public String getDocumentNamespace() { return getNameSpace(); } - protected static HashMap ns = new HashMap(); + private static HashMap ns = new HashMap(); static { ns.put("xlink", "http://www.w3.org/1999/xlink"); } + /** + * Add an element to the DOM document + * @param doc DOM document to which to add an element + * @param parent the parent element of the element that is being added + */ public void addElement(Document doc, Element parent) { this.doc = doc; element = doc.createElementNS(getNameSpace(), name); @@ -135,6 +157,11 @@ public abstract class XMLObj extends FONode { parent.appendChild(element); } + /** + * Add the top-level element to the DOM document + * @param doc DOM document + * @param svgRoot non-XSL-FO element to be added as the root of this document + */ public void buildTopLevel(Document doc, Element svgRoot) { // build up the info for the top level element for (int count = 0; count < attr.getLength(); count++) { @@ -155,6 +182,10 @@ public abstract class XMLObj extends FONode { } } + /** + * Create an empty DOM document + * @return DOM document + */ public Document createBasicDocument() { doc = null; @@ -174,6 +205,9 @@ public abstract class XMLObj extends FONode { return doc; } + /** + * @param child FONode child that should be added to this node + */ protected void addChild(FONode child) { if (child instanceof XMLObj) { ((XMLObj)child).addElement(doc, element); @@ -185,6 +219,12 @@ public abstract class XMLObj extends FONode { } } + /** + * Add parsed characters to this object + * @param data array of characters contaning the text to add + * @param start starting array element to add + * @param length number of characters from the array to add + */ protected void addCharacters(char data[], int start, int length) { String str = new String(data, start, length - start); org.w3c.dom.Text text = doc.createTextNode(str); |