]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
First phase of performance improvement.
authorFinn Bock <bckfnn@apache.org>
Mon, 18 Oct 2004 20:15:19 +0000 (20:15 +0000)
committerFinn Bock <bckfnn@apache.org>
Mon, 18 Oct 2004 20:15:19 +0000 (20:15 +0000)
PR: 31699

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198050 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fo/FONode.java
src/java/org/apache/fop/fo/FObj.java

index 1c0867f99ac5538d3b8e4159dedbb61c5197ad28..7f1d376a7fc84437004c071e81901cf5fe027ba8 100644 (file)
@@ -111,6 +111,18 @@ public abstract class FONode {
         System.out.println("name = " + elementName);
     }
 
+    /**
+     * Create a property list for this node. Return null if the node does not
+     * need a property list.
+     * @param parent the closest parent propertylist. 
+     * @param foEventHandler The FOEventHandler where the PropertyListMaker 
+     *              instance can be found.
+     * @return A new property list.
+     */
+    protected PropertyList createPropertyList(PropertyList parent, FOEventHandler foEventHandler) throws SAXParseException {
+        return null;
+    }
+
     /**
      * Checks to make sure, during SAX processing of input document, that the
      * incoming node is valid for the this (parent) node (e.g., checking to
@@ -135,6 +147,13 @@ public abstract class FONode {
         // ignore
     }
 
+    /**
+    *
+    */
+    protected void startOfNode() throws SAXParseException {
+        // do nothing by default
+   }
+
     /**
      *
      */
index 1f6b4dd5a4b5c7e921d4ea32661070b03575df22..682b4480fadf762363f4d741c064722cb52a12d5 100644 (file)
@@ -102,6 +102,43 @@ public class FObj extends FONode implements Constants {
         addProperties(attlist);
     }
 
+    /**
+     * Create a default property list for this element. 
+     */
+    protected PropertyList createPropertyList(PropertyList parent, FOEventHandler foEventHandler) throws SAXParseException {
+        //return foEventHandler.getPropertyListMaker().make(this, parent);
+        return null;
+    }
+
+    /**
+     * Bind property values from the property list to the FO node.
+     * Must be overriden in all FObj subclasses. 
+     * @param pList the PropertyList where the properties can be found.
+     * @throws SAXParseException
+     */
+    public void bind(PropertyList pList) throws SAXParseException {
+        throw new SAXParseException("Unconverted element " + this, locator);
+    }
+
+    /**
+     * Setup the id for this formatting object.
+     * Most formatting objects can have an id that can be referenced.
+     * This methods checks that the id isn't already used by another
+     * fo and sets the id attribute of this object.
+     */
+     protected void checkId(String id) throws SAXParseException {
+        if (!id.equals("")) {
+            Set idrefs = getFOEventHandler().getIDReferences();
+            if (!idrefs.contains(id)) {
+                idrefs.add(id);
+            } else {
+                throw new SAXParseException("Property id \"" + id + 
+                        "\" previously used; id values must be unique" +
+                        " in document.", locator);
+            }
+        }
+    }
+
     /**
      * Set properties for this FO based on node attributes
      * @param attlist Collection of attributes passed to us from the parser.
@@ -236,11 +273,11 @@ public class FObj extends FONode implements Constants {
      * @return FObj the nearest ancestor FONode that is an FObj
      */
     public FObj findNearestAncestorFObj() {
-      FONode par = parent;
-      while (par != null && !(par instanceof FObj)) {
-          par = par.parent;
-      }
-      return (FObj) par;
+        FONode par = parent;
+        while (par != null && !(par instanceof FObj)) {
+            par = par.parent;
+        }
+        return (FObj) par;
     }
 
     /**