aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/org/apache/fop/fo/FONode.java27
-rw-r--r--src/java/org/apache/fop/fo/Title.java30
-rw-r--r--src/java/org/apache/fop/fo/Unknown.java38
-rw-r--r--src/java/org/apache/fop/fo/UnknownXMLObj.java48
-rw-r--r--src/java/org/apache/fop/fo/XMLObj.java72
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);