]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Switched from handleAttrs() to more intuitive processNode() and (for FO namespace...
authorGlen Mazza <gmazza@apache.org>
Sat, 22 May 2004 03:59:53 +0000 (03:59 +0000)
committerGlen Mazza <gmazza@apache.org>
Sat, 22 May 2004 03:59:53 +0000 (03:59 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197613 13f79535-47bb-0310-9956-ffa450edef68

39 files changed:
examples/mathml/src/org/apache/fop/mathml/MathMLElement.java
examples/plan/src/org/apache/fop/plan/PlanElement.java
src/java/org/apache/fop/apps/Driver.java
src/java/org/apache/fop/fo/FONode.java
src/java/org/apache/fop/fo/FOTreeBuilder.java
src/java/org/apache/fop/fo/FObj.java
src/java/org/apache/fop/fo/XMLElement.java
src/java/org/apache/fop/fo/XMLObj.java
src/java/org/apache/fop/fo/extensions/Outline.java
src/java/org/apache/fop/fo/extensions/svg/SVGElement.java
src/java/org/apache/fop/fo/flow/BasicLink.java
src/java/org/apache/fop/fo/flow/Block.java
src/java/org/apache/fop/fo/flow/BlockContainer.java
src/java/org/apache/fop/fo/flow/ExternalGraphic.java
src/java/org/apache/fop/fo/flow/Footnote.java
src/java/org/apache/fop/fo/flow/FootnoteBody.java
src/java/org/apache/fop/fo/flow/Inline.java
src/java/org/apache/fop/fo/flow/InlineContainer.java
src/java/org/apache/fop/fo/flow/ListBlock.java
src/java/org/apache/fop/fo/flow/ListItem.java
src/java/org/apache/fop/fo/flow/ListItemLabel.java
src/java/org/apache/fop/fo/flow/Marker.java
src/java/org/apache/fop/fo/flow/PageNumber.java
src/java/org/apache/fop/fo/flow/RetrieveMarker.java
src/java/org/apache/fop/fo/flow/Table.java
src/java/org/apache/fop/fo/flow/TableBody.java
src/java/org/apache/fop/fo/flow/TableCell.java
src/java/org/apache/fop/fo/flow/TableColumn.java
src/java/org/apache/fop/fo/flow/TableRow.java
src/java/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java
src/java/org/apache/fop/fo/pagination/Flow.java
src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java
src/java/org/apache/fop/fo/pagination/PageMasterReference.java
src/java/org/apache/fop/fo/pagination/PageSequence.java
src/java/org/apache/fop/fo/pagination/PageSequenceMaster.java
src/java/org/apache/fop/fo/pagination/Region.java
src/java/org/apache/fop/fo/pagination/RepeatablePageMasterAlternatives.java
src/java/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java
src/java/org/apache/fop/fo/pagination/SimplePageMaster.java

index 29ef8a2ea8497c8a182790a371ac8750da6ba155..aa9ed297b04aca413f914081010d97be4928cd9a 100644 (file)
@@ -56,10 +56,11 @@ public class MathMLElement extends MathMLObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FONode#processNode
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    public void processNode(String elementName, Locator locator, 
+                            Attributes attlist) throws FOPException {
+        super.processNode(elementName, locator, attlist);
         createBasicDocument();
     }
 
index 8a6956d6d3f757e18eb87f612e4e2b27f80f69a2..07164761171d0062d137fb64d30a9ecca9303eda 100644 (file)
@@ -44,10 +44,11 @@ public class PlanElement extends PlanObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FONode#processNode
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    public void processNode(String elementName, Locator locator, 
+                            Attributes attlist) throws FOPException {
+        super.processNode(elementName, locator, attlist);
         createBasicDocument();
     }
 
index c868712533ae64163cc10904a1629028b166636e..b9a5cb213eadc8d8f8f2d934802cd2bab8863f78 100644 (file)
@@ -229,7 +229,6 @@ public class Driver {
             throw new IllegalStateException("Driver already initialized");
         }
         treeBuilder = new FOTreeBuilder();
-        treeBuilder.setUserAgent(getUserAgent());
     }
 
     /**
@@ -511,7 +510,6 @@ public class Driver {
 
         foInputHandler.setLogger(getLogger());
 
-        treeBuilder.setUserAgent(getUserAgent());
         treeBuilder.setFOInputHandler(foInputHandler);
         treeBuilder.setFOTreeControl(currentDocument);
 
index 70f709ab58ac64f4a521d23e4b07fd9905963cb5..7d293ad77a58637a35895875e47fa4c7d8f06156 100644 (file)
@@ -37,8 +37,10 @@ import org.apache.fop.apps.FOUserAgent;
  *
  */
 public abstract class FONode {
+
     /** Parent FO node */
     protected FONode parent;
+
     /** Name of the node */
     protected String name;
 
@@ -51,21 +53,13 @@ public abstract class FONode {
     }
 
     /**
-     * Sets the name of the node.
-     * @param str the name
+     * Returns the user agent for the node.
+     * @return FOUserAgent
      */
-    public void setName(String str) {
-        name = str;
+    public FOUserAgent getUserAgent() {
+        return getFOTreeControl().getDriver().getUserAgent();
     }
 
-    /**
-     * Sets the name of the node.
-     * @param str the name
-     */
-    public void setLocation(Locator locator) {
-        // do nothing by default
-    }
-    
     /**
      * Returns the logger for the node.
      * @return the logger
@@ -75,19 +69,16 @@ public abstract class FONode {
     }
 
     /**
-     * Returns the user agent for the node.
-     * @return FOUserAgent
-     */
-    public FOUserAgent getUserAgent() {
-        return getFOTreeControl().getDriver().getUserAgent();
-    }
-
-    /**
-     * Do something with the attributes for this element
+     * Initialize the node with its name, location information, and attributes
+     * The attributes must be used immediately as the sax attributes
+     * will be altered for the next element.
+     * @param elementName element name (e.g., "fo:block")
+     * @param locator Locator object (ignored by default)
      * @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 {
+    */
+    public void processNode(String elementName, Locator locator, Attributes attlist) throws FOPException {
+        this.name = elementName;
     }
 
     /**
index 014d51cc4530598f5da9ea9f465cf90090a9ea09..59a16095a083b8054ca179bd6fd9f634cc62a8c1 100644 (file)
@@ -32,7 +32,6 @@ import java.util.Set;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.fop.apps.FOPException;
-import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.fo.ElementMapping.Maker;
 import org.apache.fop.fo.pagination.Root;
 import org.xml.sax.Attributes;
@@ -65,14 +64,14 @@ public class FOTreeBuilder extends DefaultHandler {
     protected Set namespaces = new java.util.HashSet();
 
     /**
-     * Current formatting object being handled
+     * The root of the formatting object tree
      */
-    protected FONode currentFObj = null;
+    protected Root rootFObj = null;
 
     /**
-     * The root of the formatting object tree
+     * Current formatting object being handled
      */
-    protected Root rootFObj = null;
+    protected FONode currentFObj = null;
 
     /**
      * The class that handles formatting and rendering to a stream
@@ -80,12 +79,10 @@ public class FOTreeBuilder extends DefaultHandler {
      */
     private FOInputHandler foInputHandler;
 
-    private FOUserAgent userAgent;
-
     /** The FOTreeControl object managing the FO Tree that is being built */
     private FOTreeControl foTreeControl;
 
-    /** The SAX locator object maneging the line and column counters */
+    /** The SAX locator object managing the line and column counters */
     private Locator locator; 
     
     /**
@@ -95,22 +92,6 @@ public class FOTreeBuilder extends DefaultHandler {
         setupDefaultMappings();
     }
 
-    private Log getLogger() {
-        return log;
-    }
-
-    /**
-     * Sets the user agent
-     * @param ua the user agent
-     */
-    public void setUserAgent(FOUserAgent ua) {
-        userAgent = ua;
-    }
-
-    private FOUserAgent getUserAgent() {
-        return userAgent;
-    }
-
     /**
      * Sets the FO Tree Control for this object
      * @param fotc FOTreeControl instance
@@ -146,7 +127,7 @@ public class FOTreeBuilder extends DefaultHandler {
                 try {
                     addElementMapping(str);
                 } catch (IllegalArgumentException e) {
-                    getLogger().warn("Error while adding element mapping", e);
+                    log.warn("Error while adding element mapping", e);
                 }
 
             }
@@ -208,24 +189,14 @@ public class FOTreeBuilder extends DefaultHandler {
         }
     }
 
-    /**
-     * SAX Handler for the end of an element
-     * @see org.xml.sax.ContentHandler#endElement(String, String, String)
-     */
-    public void endElement(String uri, String localName, String rawName)
-                throws SAXException {
-        currentFObj.end();
-        currentFObj = currentFObj.getParent();
-    }
-
     /**
      * SAX Handler for the start of the document
      * @see org.xml.sax.ContentHandler#startDocument()
      */
     public void startDocument() throws SAXException {
         rootFObj = null;    // allows FOTreeBuilder to be reused
-        if (getLogger().isDebugEnabled()) {
-            getLogger().debug("Building formatting object tree");
+        if (log.isDebugEnabled()) {
+            log.debug("Building formatting object tree");
         }
         foInputHandler.startDocument();
     }
@@ -237,8 +208,8 @@ public class FOTreeBuilder extends DefaultHandler {
     public void endDocument() throws SAXException {
         rootFObj = null;
         currentFObj = null;
-        if (getLogger().isDebugEnabled()) {
-            getLogger().debug("Parsing of document complete");
+        if (log.isDebugEnabled()) {
+            log.debug("Parsing of document complete");
         }
         foInputHandler.endDocument();
     }
@@ -249,8 +220,9 @@ public class FOTreeBuilder extends DefaultHandler {
      */
     public void startElement(String namespaceURI, String localName, String rawName,
                              Attributes attlist) throws SAXException {
-        /* the formatting object started */
-        FONode fobj;
+
+        /* the node found in the FO document */
+        FONode foNode;
 
         /* the maker for the formatting object started */
         ElementMapping.Maker fobjMaker = findFOMaker(namespaceURI, localName);
@@ -258,27 +230,35 @@ public class FOTreeBuilder extends DefaultHandler {
 //      System.out.println("found a " + fobjMaker.toString());
 
         try {
-            fobj = fobjMaker.make(currentFObj);
-            fobj.setName(localName);
-            fobj.setLocation(locator);
-            fobj.handleAttrs(attlist);
+            foNode = fobjMaker.make(currentFObj);
+            foNode.processNode(localName, locator, attlist);
         } catch (FOPException e) {
             throw new SAXException(e);
         }
 
         if (rootFObj == null) {
-            if (!fobj.getName().equals("fo:root")) {
+            if (!foNode.getName().equals("fo:root")) {
                 throw new SAXException(new FOPException("Root element must"
                                                         + " be fo:root, not "
-                                                        + fobj.getName()));
+                                                        + foNode.getName()));
             }
-            rootFObj = (Root)fobj;
+            rootFObj = (Root) foNode;
             rootFObj.setFOTreeControl(foTreeControl);
         } else {
-            currentFObj.addChild(fobj);
+            currentFObj.addChild(foNode);
         }
 
-        currentFObj = fobj;
+        currentFObj = foNode;
+    }
+
+    /**
+     * SAX Handler for the end of an element
+     * @see org.xml.sax.ContentHandler#endElement(String, String, String)
+     */
+    public void endElement(String uri, String localName, String rawName)
+                throws SAXException {
+        currentFObj.end();
+        currentFObj = currentFObj.getParent();
     }
 
     /**
@@ -299,8 +279,8 @@ public class FOTreeBuilder extends DefaultHandler {
       }
 
       if (fobjMaker == null) {
-          if (getLogger().isWarnEnabled()) {
-              getLogger().warn("Unknown formatting object " + namespaceURI + "^" + localName);
+          if (log.isWarnEnabled()) {
+              log.warn("Unknown formatting object " + namespaceURI + "^" + localName);
           }
           if (namespaces.contains(namespaceURI.intern())) {
               // fall back
@@ -350,7 +330,7 @@ class Service {
         }
         String serviceFile = "META-INF/services/" + cls.getName();
 
-        // getLogger().debug("File: " + serviceFile);
+        // log.debug("File: " + serviceFile);
 
         List lst = (List)providerMap.get(serviceFile);
         if (lst != null) {
@@ -370,7 +350,7 @@ class Service {
         while (e.hasMoreElements()) {
             try {
                 java.net.URL u = (java.net.URL)e.nextElement();
-                //getLogger().debug("URL: " + u);
+                //log.debug("URL: " + u);
 
                 InputStream is = u.openStream();
                 Reader r = new InputStreamReader(is, "UTF-8");
@@ -393,7 +373,7 @@ class Service {
                             line = br.readLine();
                             continue;
                         }
-                        // getLogger().debug("Line: " + line);
+                        // log.debug("Line: " + line);
 
                         // Try and load the class
                         // Object obj = cl.loadClass(line).newInstance();
index db2bc953dba2bca04e1a016b8a47fd6b598d0ce1..c1cc9891e291e543689badd3f36dcdd8d703f385 100644 (file)
@@ -69,6 +69,15 @@ public class FObj extends FONode implements Constants {
      */
     protected Map layoutDimension = null;
 
+    /** Marks input file containing this object **/
+    public String systemId;
+
+    /** Marks line number of this object in the input file **/
+    public int line;
+
+    /** Marks column number of this object in the input file **/
+    public int column;
+
     /**
      * Create a new formatting object.
      * All formatting object classes extend this class.
@@ -88,39 +97,27 @@ public class FObj extends FONode implements Constants {
         }
     }
 
-    /** Marks input file containing this object **/
-    public String systemId;
-    /** Marks line number of this object in the input file **/
-    public int line;
-    /** Marks column number of this object in the input file **/
-    public int column;
-
     /**
-     * Set the name of this element.
-     * The prepends "fo:" to the name to indicate it is in the fo namespace.
-     *
-     * @param str the xml element name
+     * @see org.apache.fop.fo.FONode#processNode
      */
-    public void setName(String str) {
-        name = "fo:" + str;
-    }
+    public void processNode(String elementName, Locator locator, 
+                            Attributes attlist) throws FOPException {
+        name = "fo:" + elementName;
 
-    public void setLocation(Locator locator) {
         if (locator != null) {
             line = locator.getLineNumber();
             column = locator.getColumnNumber();
             systemId = locator.getSystemId();
         }
+
+        addProperties(attlist);
     }
-    
+
     /**
-     * Handle the attributes for this element.
-     * The attributes must be used immediately as the sax attributes
-     * will be altered for the next element.
+     * Set properties for this FO based on node attributes
      * @param attlist Collection of attributes passed to us from the parser.
-     * @throws FOPException for invalid FO data
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws FOPException {
         FObj parentFO = findNearestAncestorFObj();
         PropertyList parentPropertyList = null;
         if (parentFO != null) {
@@ -135,6 +132,24 @@ public class FObj extends FONode implements Constants {
     }
 
     /**
+     * Set the name of this element.
+     * The prepends "fo:" to the name to indicate it is in the fo namespace.
+     *
+     * @param str the xml element name
+     */
+    public void setName(String str) {
+        name = "fo:" + str;
+    }
+
+    public void setLocation(Locator locator) {
+        if (locator != null) {
+            line = locator.getLineNumber();
+            column = locator.getColumnNumber();
+            systemId = locator.getSystemId();
+        }
+    }
+
+   /**
      * Find the nearest parent, grandparent, etc. FONode that is also an FObj
      * @return FObj the nearest ancestor FONode that is an FObj
      */
index 50cabbbb8358544bba4111a0214086c2fea1d093..2d5b84b00a847693ec3aad7cbd54e3b2317e268a 100644 (file)
@@ -20,6 +20,7 @@ package org.apache.fop.fo;
 
 // XML
 import org.xml.sax.Attributes;
+import org.xml.sax.Locator;
 
 // FOP
 import org.apache.fop.apps.FOPException;
@@ -41,13 +42,11 @@ public class XMLElement extends XMLObj {
     }
 
     /**
-     * Process the attributes for this element.
-     * @param attlist the attribute list for this element returned by the SAX
-     * parser
-     * @throws FOPException for invalid attributes
+     * @see org.apache.fop.fo.FONode#processNode
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    public void processNode(String elementName, Locator locator, 
+                            Attributes attlist) throws FOPException {
+        super.processNode(elementName, locator, attlist);
         init();
     }
 
index 574b8c9faeae5a756e5899ec1581f448f4e8a8a1..91baef3fe59549553d27a2cf73e8e3cc563f291b 100644 (file)
@@ -39,8 +39,10 @@ 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;
 
@@ -53,18 +55,10 @@ public abstract class XMLObj extends FONode {
     }
 
     /**
-     * @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
+     * @see org.apache.fop.fo.FONode#processNode
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
+    public void processNode(String elementName, Locator locator, Attributes attlist) throws FOPException {
+        name = elementName;
         attr = attlist;
     }
 
index c9282a1f44d6a605dd5bdf2469f81e1f9b2d30eb..548ee0c05cf905601b0be06daaacadd433201122 100644 (file)
@@ -48,13 +48,12 @@ public class Outline extends ExtensionObj {
     }
 
     /**
-     * The attribues on the outline object are the internal and external
+     * The attributes on the outline object are the internal and external
      * destination. One of these is required.
      *
-     * @param attlist the attribute list
-     * @throws FOPException a fop exception if there is an error
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
+    protected void addProperties(Attributes attlist) throws FOPException {
         internalDestination =
             attlist.getValue("internal-destination");
         externalDestination =
index 693a2562890310742532946f71eef26c5493dfc1..812e83a820c6a96d43c199990a664b4b69daeab9 100644 (file)
@@ -30,6 +30,7 @@ import org.apache.batik.dom.util.XMLSupport;
 import org.w3c.dom.Element;
 import org.w3c.dom.svg.SVGDocument;
 import org.xml.sax.Attributes;
+import org.xml.sax.Locator;
 import org.apache.batik.bridge.UnitProcessor;
 import org.apache.batik.util.SVGConstants;
 
@@ -58,12 +59,11 @@ public class SVGElement extends SVGObj {
     }
 
     /**
-     * Handle the xml attributes from SAX.
-     * @param attlist the attribute list
-     * @throws FOPException not thrown from here
+     * @see org.apache.fop.fo.FONode#processNode
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    public void processNode(String elementName, Locator locator, 
+                            Attributes attlist) throws FOPException {
+        super.processNode(elementName, locator, attlist);
         init();
     }
 
index 9fa3c2997efa425497da1b80ea4011168e321049..a541ac27f214b0457ed79df0abd69d5d2be2809a 100644 (file)
@@ -49,6 +49,14 @@ public class BasicLink extends Inline {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        getFOTreeControl().getFOInputHandler().startLink(this);
+    }
+
     public void setup() {
         String destination;
         int linkType;
@@ -129,15 +137,6 @@ public class BasicLink extends Inline {
         fotv.serveBasicLink(this);
     }
 
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        getFOTreeControl().getFOInputHandler().startLink(this);
-    }
-    
     /**
      * @see org.apache.fop.fo.FONode#end
      */
index 72d651b8def50db1c33596b9163ba32597ac99b5..bd99ced067695ea5401e09cd894276d7c6680ca0 100644 (file)
@@ -96,10 +96,10 @@ public class Block extends FObjMixed {
     }
 
     /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         this.span = this.propertyList.get(PR_SPAN).getEnum();
         this.wsTreatment =
           this.propertyList.get(PR_WHITE_SPACE_TREATMENT).getEnum();
index 4964bd1286d262322bda8e088970a9c7e1eace44..1d8e8e90f5295445bc133ccc689f3651484d0f23 100644 (file)
@@ -57,10 +57,10 @@ public class BlockContainer extends FObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         this.span = this.propertyList.get(PR_SPAN).getEnum();
         setupID();
     }
index 9ff80787e138729e9921af42a499fb0c7e979785..842be76411ffadeefd89cc80e616688412eb95f5 100644 (file)
@@ -58,6 +58,14 @@ public class ExternalGraphic extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        getFOTreeControl().getFOInputHandler().image(this);
+    }
+
     /**
      * Setup this image.
      * This gets the sizes for the image and the dimensions and clipping.
@@ -234,12 +242,4 @@ public class ExternalGraphic extends FObj {
         return placement;
     }
 
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        getFOTreeControl().getFOInputHandler().image(this);
-    }
 }
index ffb45c465d0ae569036d8d26cd988ce41210bf0b..136e15363bde1bc75ff1005d3745812cfa71bc1e 100644 (file)
@@ -43,6 +43,14 @@ public class Footnote extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        getFOTreeControl().getFOInputHandler().startFootnote(this);
+    }
+
     /**
      * @param child child FONode to be added to this object
      */
@@ -69,18 +77,8 @@ public class Footnote extends FObj {
         fotv.serveFootnote(this);
     }
     
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        getFOTreeControl().getFOInputHandler().startFootnote(this);
-    }
-
     protected void end() {
         super.end();
-        
         getFOTreeControl().getFOInputHandler().endFootnote(this);
     }
 }
index 562f267593a0dd7e2fd89a536ddffd3e7f08a2bb..162a1bcecf71bed4cade7137a3d218a072a755e6 100644 (file)
@@ -47,19 +47,18 @@ public class FootnoteBody extends FObj {
         super(parent);
     }
 
-    public void acceptVisitor(FOTreeVisitor fotv) {
-        fotv.serveFootnoteBody(this);
-    }
-
     /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         getFOTreeControl().getFOInputHandler().startFootnoteBody(this);
     }
 
+    public void acceptVisitor(FOTreeVisitor fotv) {
+        fotv.serveFootnoteBody(this);
+    }
+
     protected void end() {
         super.end();
         
index 1d99bceb4cbd44651037fc9d3c05221103535e51..1441e03962d3ba2bd59bd8c92280d792bc6cb774 100644 (file)
@@ -56,10 +56,10 @@ public class Inline extends FObjMixed {
     }
 
     /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
 
         if (parent.getName().equals("fo:flow")) {
             throw new FOPException("inline formatting objects cannot"
index eb2901344178212485973d6a35338d3ebf750b9b..2889034d088cf17084dfba848b7a5bcbf1ebc571 100644 (file)
@@ -45,10 +45,10 @@ public class InlineContainer extends FObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         // Common Border, Padding, and Background Properties
         CommonBorderAndPadding bap = propMgr.getBorderAndPadding();
         CommonBackground bProps = propMgr.getBackgroundProps();
index 11ee08e44ff48bad2405390752caa57dd317ff3f..b0fd8c4b6a38525b3d288825237542d3989a18c3 100644 (file)
@@ -59,6 +59,14 @@ public class ListBlock extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        getFOTreeControl().getFOInputHandler().startList(this);
+    }
+
     private void setup() throws FOPException {
 
             // Common Accessibility Properties
@@ -128,15 +136,6 @@ public class ListBlock extends FObj {
         fotv.serveListBlock(this);
     }
 
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        getFOTreeControl().getFOInputHandler().startList(this);
-    }
-    
     protected void end() {
         super.end();
         
index c3f8c0b83c0d76dfa41f7259911417a48d12bb35..69f2a9c2972a0b6790d63546629950ed1caadf48 100644 (file)
@@ -59,6 +59,14 @@ public class ListItem extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        getFOTreeControl().getFOInputHandler().startListItem(this);
+    }
+
     private void setup() {
 
         // Common Accessibility Properties
@@ -138,18 +146,8 @@ public class ListItem extends FObj {
         fotv.serveListItem(this);
     }
 
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        getFOTreeControl().getFOInputHandler().startListItem(this);
-    }
-    
     protected void end() {
         super.end();
-        
         getFOTreeControl().getFOInputHandler().endListItem(this);
     }
 }
index 666f3a0897f0f1380a1c7549b45aca0687497118..c04dece44c3adaff3d58df5ccc7302966778beb8 100644 (file)
@@ -41,6 +41,14 @@ public class ListItemLabel extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        getFOTreeControl().getFOInputHandler().startListLabel();
+    }
+
     private void setup() {
 
         // Common Accessibility Properties
@@ -75,15 +83,6 @@ public class ListItemLabel extends FObj {
         fotv.serveListItemLabel(this);
     }
 
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        getFOTreeControl().getFOInputHandler().startListLabel();
-    }
-    
     protected void end() {
         super.end();
         
index f6ff69af4ca25be64d4c142250b067128a2a05af..81e681650edc2e4ee2268c94eca3652b27a09f5b 100644 (file)
@@ -46,16 +46,10 @@ public class Marker extends FObjMixed {
     }
 
     /**
-     * Handle the attributes for this marker.
-     * This gets the marker-class-name and attempts to add itself
-     * to the parent formatting object.
-     *
-     * @param attlist the attribute list
-     * @throws FOPException if there is an exception
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         this.markerClassName =
             this.propertyList.get(PR_MARKER_CLASS_NAME).getString();
     }
index 1d758436b9c8e24608f72b324f26b24c50514734..b092cf75c8975f2d0b6b6903fb63da22fc13a58a 100644 (file)
@@ -55,6 +55,15 @@ public class PageNumber extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        setup();
+        getFOTreeControl().getFOInputHandler().startPageNumber(this);
+    }
+
     public void setup() {
 
         // Common Accessibility Properties
@@ -119,17 +128,6 @@ public class PageNumber extends FObj {
         fotv.servePageNumber(this);
     }
 
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        setup();
-
-        getFOTreeControl().getFOInputHandler().startPageNumber(this);
-    }
-
     protected void end() {
         getFOTreeControl().getFOInputHandler().endPageNumber(this);
     }
index a18e01e05317b2ca7adeefc49cfcdd4e6bc051e9..826a6faf9704edb35f4b3be8a5d0c46c4facbf05 100644 (file)
@@ -46,12 +46,10 @@ public class RetrieveMarker extends FObjMixed {
     }
 
     /**
-     * Handle the attributes for the retrieve-marker.
-     *
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         this.retrieveClassName =
             this.propertyList.get(PR_RETRIEVE_CLASS_NAME).getString();
         this.retrievePosition =
index b0ce8d664b4269bfbd0ad74ef1e1901ddc95be4a..8c81cf79682be9e4c47fff96c839bca8d21c49a7 100644 (file)
@@ -75,6 +75,15 @@ public class Table extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        setupID();
+        getFOTreeControl().getFOInputHandler().startTable(this);
+    }
+
     /**
      * Overrides FObj.
      * @param child FONode child object to be added
@@ -193,17 +202,6 @@ public class Table extends FObj {
         fotv.serveTable(this);
     }
 
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        setupID();
-
-        getFOTreeControl().getFOInputHandler().startTable(this);
-    }
-
     protected void end() {
         getFOTreeControl().getFOInputHandler().endTable(this);
     }
index addc5ad95e48c207b9e074151b85075b5038e9db..23b02e2ec2440e8ceb2ce0ad96af5bde743d2fba 100644 (file)
@@ -51,6 +51,15 @@ public class TableBody extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        setupID();
+        getFOTreeControl().getFOInputHandler().startBody(this);
+    }
+
     private void setup() throws FOPException {
         // Common Accessibility Properties
         CommonAccessibility mAccProps = propMgr.getAccessibilityProps();
@@ -94,17 +103,6 @@ public class TableBody extends FObj {
         fotv.serveTableBody(this);
     }
 
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        setupID();
-
-        getFOTreeControl().getFOInputHandler().startBody(this);
-    }
-
     protected void end() {
         getFOTreeControl().getFOInputHandler().endBody(this);
     }
index f58a6f12ff0f5850dec4e6f1e69f1f7167b6f29e..a63eedd79c086fa9c39cc166ce2e731ef2969299 100644 (file)
@@ -118,14 +118,11 @@ public class TableCell extends FObj {
     }
 
     /**
-     * Overriden from FObj.
-     * @param attlist Collection of attributes passed to us from the parser.
-     * @throws FOPException for FO errors
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         doSetup();    // init some basic property values
-
         getFOTreeControl().getFOInputHandler().startCell(this);
     }
 
index 7003bc4d79441988b41271cc2fda8aedffe1a471..067aec266b23c30a3fb54719a6a3a5270818518b 100644 (file)
@@ -54,6 +54,15 @@ public class TableColumn extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        initialize();    // init some basic property values
+        getFOTreeControl().getFOInputHandler().startColumn(this);
+    }
+
     /**
      * @return Length object containing column width
      */
@@ -114,18 +123,6 @@ public class TableColumn extends FObj {
         fotv.serveTableColumn(this);
     }
 
-    /**
-     * Overriden from FObj.
-     * @param attlist Collection of attributes passed to us from the parser.
-     * @throws FOPException for FO errors
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-        initialize();    // init some basic property values
-
-        getFOTreeControl().getFOInputHandler().startColumn(this);
-    }
-
     protected void end() {
         getFOTreeControl().getFOInputHandler().endColumn(this);
     }
index b470ebe6069d0e0b2acfc7313380b311086457ff..fabde75a0d1e574bf07bf7fad3bc8616217ce058 100644 (file)
@@ -62,6 +62,15 @@ public class TableRow extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
+        setupID();
+        getFOTreeControl().getFOInputHandler().startRow(this);
+    }
+
     /**
      * @return keepWithPrevious
      */
@@ -135,17 +144,6 @@ public class TableRow extends FObj {
         fotv.serveTableRow(this);
     }
 
-    /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
-        setupID();
-
-        getFOTreeControl().getFOInputHandler().startRow(this);
-    }
-
     protected void end() {
         getFOTreeControl().getFOInputHandler().endRow(this);
     }
index acbcc8a0afff37dbb05770ac44bded62907e8149..b98276462d1901fedc6467125003d9e7037a2784 100644 (file)
@@ -53,10 +53,10 @@ public class ConditionalPageMasterReference extends FObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         if (getProperty(PR_MASTER_REFERENCE) != null) {
             setMasterName(getProperty(PR_MASTER_REFERENCE).getString());
         }
index 670bcc736edb3c8430c4feae68752e0d235ce683..e46eb8201a9991d1f4abc05fe5535b462295e604 100644 (file)
@@ -63,12 +63,10 @@ public class Flow extends FObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FObj#handleAttrs
-     * @param attlist Collection of attributes passed to us from the parser.
-     * @throws FOPException if parent is not a page-sequence object
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         if (parent.getName().equals("fo:page-sequence")) {
             this.pageSequence = (PageSequence) parent;
         } else {
index 4ad02daab28a28e3651be04cd8ebf2fd18f1aeb6..afa039b4a2c3b8f175ee9e870092830c5ac6e388 100644 (file)
@@ -53,10 +53,10 @@ public class LayoutMasterSet extends FObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
 
         if (parent.getName().equals("fo:root")) {
             Root root = (Root)parent;
index 302ae987ec6972499987ffa7394508df900be7ac..409bb92c24d2122a1f97d39f655e8f3686ed11b2 100644 (file)
@@ -44,10 +44,10 @@ public abstract class PageMasterReference extends FObj
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         if (getProperty(PR_MASTER_REFERENCE) != null) {
             this.masterName = getProperty(PR_MASTER_REFERENCE).getString();
         }
index c89967b3cb05c60e6c1de16dfadc77e0c3048dcd..5bc84706f245c6fdb8cc4678670e9e3aecffb566 100644 (file)
@@ -130,16 +130,10 @@ public class PageSequence extends FObj {
     }
 
     /**
-     * Handle the attributes for this xml element.
-     * For the page sequence this gets all the appropriate properties
-     * for dealing with the page sequence.
-     *
-     * @param attlist the attribute list
-     * @throws FOPException if there is an error with the properties
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         if (parent.getName().equals("fo:root")) {
             this.root = (Root)parent;
             // this.root.addPageSequence(this);
index e3a21337aee37be43f2d3a059e09ea70f4495f88..199ff0fb3199f638f45d46d3fe25042855b3f0ff 100644 (file)
@@ -59,13 +59,11 @@ public class PageSequenceMaster extends FObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         subSequenceSpecifiers = new java.util.ArrayList();
-
         if (parent.getName().equals("fo:layout-master-set")) {
             this.layoutMasterSet = (LayoutMasterSet)parent;
             masterName = this.propertyList.get(Constants.PR_MASTER_NAME).getString();
index bccd5402fca4c25b990826208822e95618cf16b1..1540682a5f07daf4467d2732aae3dbe8e67ca833 100644 (file)
@@ -62,10 +62,10 @@ public abstract class Region extends FObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
 
         // regions may have name, or default
         if (null == this.propertyList.get(PR_REGION_NAME)) {
index 67dba300f38ec88e1e3da65226417a95d91f13fe..2d1f54819dd15b8451139d3973c5733691bbf55e 100644 (file)
@@ -58,11 +58,10 @@ public class RepeatablePageMasterAlternatives extends FObj
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         conditionalPageMasterRefs = new ArrayList();
 
         if (parent.getName().equals("fo:page-sequence-master")) {
index c012a21c10486c81a3924d5a37bbc6df9682a610..c75be5b1601018c90e78468e3eee9dea8f20c7e0 100644 (file)
@@ -49,11 +49,10 @@ public class RepeatablePageMasterReference extends PageMasterReference
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
-
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
         String mr = getProperty(PR_MAXIMUM_REPEATS).getString();
         if (mr.equals("no-limit")) {
             this.maximumRepeats = INFINITE;
index 542a91261cfcdc9644e508ccf014ba33aa157557..73b4846527dcc8c68cbb7e613a3dbd2e0b7b3880 100644 (file)
@@ -53,10 +53,10 @@ public class SimplePageMaster extends FObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
+     * @see org.apache.fop.fo.FObj#addProperties
      */
-    public void handleAttrs(Attributes attlist) throws FOPException {
-        super.handleAttrs(attlist);
+    protected void addProperties(Attributes attlist) throws FOPException {
+        super.addProperties(attlist);
 
         if (parent.getName().equals("fo:layout-master-set")) {
             LayoutMasterSet layoutMasterSet = (LayoutMasterSet)parent;