]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Created a BitSet indicating FO's that can contain fo:marker child elements,
authorGlen Mazza <gmazza@apache.org>
Sun, 8 Aug 2004 19:04:49 +0000 (19:04 +0000)
committerGlen Mazza <gmazza@apache.org>
Sun, 8 Aug 2004 19:04:49 +0000 (19:04 +0000)
removed all containsMarkers() methods from FObj subclasses.

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

18 files changed:
src/java/org/apache/fop/fo/FObj.java
src/java/org/apache/fop/fo/PropertySets.java
src/java/org/apache/fop/fo/flow/BasicLink.java
src/java/org/apache/fop/fo/flow/BidiOverride.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/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/ListItemBody.java
src/java/org/apache/fop/fo/flow/ListItemLabel.java
src/java/org/apache/fop/fo/flow/Table.java
src/java/org/apache/fop/fo/flow/TableAndCaption.java
src/java/org/apache/fop/fo/flow/TableBody.java
src/java/org/apache/fop/fo/flow/TableCaption.java
src/java/org/apache/fop/fo/flow/TableCell.java
src/java/org/apache/fop/fo/flow/Wrapper.java

index bfb97398c2ea3c5ee8ea94692faafc2667dab4d4..5c6f671960f91d291a9a1551f57c2636d62dd254 100644 (file)
@@ -92,7 +92,7 @@ public class FObj extends FONode implements Constants {
             for (int i = 1; i < list.length; i++) {
                 if (list[i] != null)
                     propertyListTable[i] = list[i]; 
-            }    
+            }
         }
     }
 
@@ -163,7 +163,8 @@ public class FObj extends FONode implements Constants {
      * @see org.apache.fop.fo.FONode#addChildNode(FONode)
      */
     protected void addChildNode(FONode child) {
-        if (containsMarkers() && "fo:marker".equals(child.getName())) {
+        if (PropertySets.canHaveMarkers(getNameId()) && 
+                "fo:marker".equals(child.getName())) {
             addMarker((Marker) child);
         } else {
             if (childNodes == null) {
@@ -334,16 +335,6 @@ public class FObj extends FONode implements Constants {
         return true;
     }
 
-    /**
-     * Check if this formatting object may contain markers.
-     *
-     * @return true if this can contain markers
-     * @todo confirm if still needed after validateChildNode() fully implemented
-     */
-    protected boolean containsMarkers() {
-        return false;
-    }
-
     /**
      * Set writing mode for this FO.
      * Use that from the nearest ancestor, including self, which generates
index 2494d25b584b9c16fee71788c17216ad45e902f7..e48381e856aab4febf49793f2738b1f6dcfde66a 100644 (file)
@@ -25,6 +25,7 @@ import java.util.ArrayList;
 
 public class PropertySets {
     private static short[][] mapping = null;
+    private static BitSet can_have_markers = null;
 
     private Element[] elements = new Element[Constants.ELEMENT_COUNT+1];
     private BitSet block_elems = new BitSet();
@@ -998,7 +999,6 @@ public class PropertySets {
         return indices;
     }
 
-
     public static short[] getPropertySet(int elementId) {
         if (mapping == null) {
             mapping = new short[Constants.ELEMENT_COUNT+1][];
@@ -1010,6 +1010,35 @@ public class PropertySets {
         return mapping[elementId];
     }
 
+    /**
+     * Determines if fo:markers are allowed as children for the given FO
+     * @param elementId Constants enumeration ID of the FO (e.g., FO_ROOT)
+     * @return true if fo:markers allowed, false otherwise
+     * @todo check if still needed after validateChildNode() fully implemented
+     */
+    public static boolean canHaveMarkers(int elementId) {
+        if (can_have_markers == null) {
+            can_have_markers = new BitSet();
+            can_have_markers.set(Constants.FO_BASIC_LINK);
+            can_have_markers.set(Constants.FO_BIDI_OVERRIDE);
+            can_have_markers.set(Constants.FO_BLOCK);
+            can_have_markers.set(Constants.FO_BLOCK_CONTAINER);
+            can_have_markers.set(Constants.FO_INLINE);
+            can_have_markers.set(Constants.FO_INLINE_CONTAINER);
+            can_have_markers.set(Constants.FO_LIST_BLOCK);
+            can_have_markers.set(Constants.FO_LIST_ITEM);
+            can_have_markers.set(Constants.FO_LIST_ITEM_BODY);
+            can_have_markers.set(Constants.FO_LIST_ITEM_LABEL);
+            can_have_markers.set(Constants.FO_TABLE);
+            can_have_markers.set(Constants.FO_TABLE_BODY);
+            can_have_markers.set(Constants.FO_TABLE_CELL);
+            can_have_markers.set(Constants.FO_TABLE_AND_CAPTION);
+            can_have_markers.set(Constants.FO_TABLE_CAPTION);
+            can_have_markers.set(Constants.FO_WRAPPER);
+        }
+        return can_have_markers.get(elementId);
+    }
+    
     /**
      * An object that represent the properties and contents of a fo element
      */
index 63784aebcda8b5be58bc64c12a25bc0b4f6ea894..2c5d29abf7dd635d2cd8237ce023c6b313733d39 100644 (file)
@@ -141,12 +141,4 @@ public class BasicLink extends Inline {
     public int getNameId() {
         return FO_BASIC_LINK;
     }
-
-    /**
-     * @return true (BasicLink can contain Markers)
-     * @todo see if can remove in favor of a BitSet for all FO's
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
 }
index de1cd83dc4d2d36920fe104b8dc038cc7a0f9fc1..f942fa4d46de43269b790a2cae15c1f2cb21d52d 100644 (file)
@@ -146,11 +146,4 @@ public class BidiOverride extends FObjMixed {
     public int getNameId() {
         return FO_BIDI_OVERRIDE;
     }
-
-    /**
-     * @return true (BidiOverride can contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
 }
index b45b9778229e66ae6dbdc198d00fe32e6990b945..01e0f18cd4b330af242b8668cfdbe511901bec14 100644 (file)
@@ -350,11 +350,4 @@ public class Block extends FObjMixed {
     public int getNameId() {
         return FO_BLOCK;
     }
-
-    /**
-     * @return true (Block can contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
 }
index 7c6aeccfe08e06564655bdbf451af2c09edfe9d6..d6562e78f3adb8c413a4054357bafdfbe4803e2d 100644 (file)
@@ -119,13 +119,6 @@ public class BlockContainer extends FObj {
         return false;
     }
 
-    /**
-     * @return true (BlockContainer can contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     /**
      * @return the span for this object
      */
index d23aea29d9b06d8ffb8f31f07395441bfa15972c..e8077de836f660c0e5dc2d94f2e5ba734247d927 100644 (file)
@@ -93,13 +93,6 @@ public class Inline extends FObjMixed {
         getFOInputHandler().endInline(this);
     }
 
-    /**
-     * @return true (Inline can contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     /**
      * @see org.apache.fop.fo.FObjMixed#charIterator
      */
index c96fd6afe28ca6d3e66b1fe475225892687edec0..602b617eb035ad5adf67d9bc09f5797e56d92d05 100644 (file)
@@ -86,13 +86,6 @@ public class InlineContainer extends FObj {
         // this.propertyList.get("writing-mode");
     }
 
-    /**
-     * @return true (InlineContainer can contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     /**
      * @see org.apache.fop.fo.FObj#addLayoutManager(List)
      */
index 147ac5ab3693230422dd705cca84d5eb34a167c3..b58226aa1858e73c898b2c16cf73c714c622553e 100644 (file)
@@ -94,13 +94,6 @@ public class ListBlock extends FObj {
         return false;
     }
 
-    /**
-     * @return true (ListBlock can contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     /**
      * @see org.apache.fop.fo.FObj#addLayoutManager(List)
      */
index af7cc7e5673df8b9122846200f2356b7302e2769..85b0528cb1c9a853484d45d507e83db9f70f26a8 100644 (file)
@@ -98,13 +98,6 @@ public class ListItem extends FObj {
         return false;
     }
 
-    /**
-     * @return true (ListItem can contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     /**
      * @see org.apache.fop.fo.FObj#addLayoutManager(List)
      * @todo remove checks for non-nulls after validateChildNode() added
index db7431a04eeb36ab0e3e6f160d6136bf5ba062b7..4e7c277f53d7777d99f04945560617b0742ee687 100644 (file)
@@ -53,13 +53,6 @@ public class ListItemBody extends FObj {
 
     }
 
-    /**
-     * @return true (ListItemBody can contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     public String getName() {
         return "fo:list-item-body";
     }
index 50b1d227c0c97477e176752e4b1b5e202c8a63af..0980b766e17dcbe716657962fb4576de2d2db4ef 100644 (file)
@@ -65,13 +65,6 @@ public class ListItemLabel extends FObj {
 
     }
 
-    /**
-     * @return true (ListItemLabel may contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     protected void endOfNode() throws SAXParseException {
         super.endOfNode();
         getFOInputHandler().endListLabel();
index 6778f01aa2fd3a21d80a64360a1a2a5567e1d605..e78274576d275d12087154cebbdd13d6f775a72c 100644 (file)
@@ -173,13 +173,6 @@ public class Table extends FObj implements LMVisited {
         return false;
     }
 
-    /**
-     * @return true (Table contains Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     public ArrayList getColumns() {
         return columns;
     }
index 872eb99bd9a630f222e5f16117def822253503b9..7f2b671db6b415663d95b2ec534ff884d9a94940 100644 (file)
@@ -74,13 +74,6 @@ public class TableAndCaption extends ToBeImplementedElement {
         return false;
     }
 
-    /**
-     * @return true (TableAndCaption contains Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     public String getName() {
         return "fo:table-and-caption";
     }
index 4bf3e1e825c8176ed199e1f8abd5768b344c7307..c9aa41528a523ee20ec58458d1baf02b95a65dcf 100644 (file)
@@ -89,13 +89,6 @@ public class TableBody extends FObj implements LMVisited {
 
     }
 
-    /**
-     * @return true (TableBody contains Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     /**
      * This is a hook for the AddLMVisitor class to be able to access
      * this object.
index 650de9b08b346d34dc18869e51dbda2ef9dfa1e8..1a58167029c6b5b7762171cf94ea8138e2708d29 100644 (file)
@@ -67,13 +67,6 @@ public class TableCaption extends ToBeImplementedElement {
 
     }
 
-    /**
-     * @return true (TableCaption contains Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     public String getName() {
         return "fo:table-caption";
     }
index 041901aa42419a3a2d6c2f4abbb2ca0f9a8e17eb..72c02d79cae5fb466af0c9a18da0151597615abe 100644 (file)
@@ -333,14 +333,6 @@ public class TableCell extends FObj {
         }
     }
 
-    /**
-     *
-     * @return true (TableCell can contain Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     /**
      * @see org.apache.fop.fo.FObj#addLayoutManager(List)
      */
index bf7eee07b5686ba55ca8d80d27ec3531f2aa4c7d..82a9be7839ee20d4dbb6651311312611a20f3c46 100644 (file)
@@ -41,13 +41,6 @@ public class Wrapper extends FObjMixed implements LMVisited {
         super(parent);
     }
 
-    /**
-     * @return true (Wrapper contains Markers)
-     */
-    protected boolean containsMarkers() {
-        return true;
-    }
-
     public void acceptVisitor(AddLMVisitor aLMV) {
         aLMV.serveWrapper(this);
     }