]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Get logger from parent in FONode constructor. This allows logging
authorJoerg Pietschmann <pietsch@apache.org>
Fri, 19 Jul 2002 20:41:01 +0000 (20:41 +0000)
committerJoerg Pietschmann <pietsch@apache.org>
Fri, 19 Jul 2002 20:41:01 +0000 (20:41 +0000)
in FO constructors (except in fo:root).
Moved fo:marker handlich from FONode to FObj.
Create Hashtable for fo:marker lazily.
Removed unused method getNextPage() from AreaTree

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/fop-0_20_2-maintain@195012 13f79535-47bb-0310-9956-ffa450edef68

src/org/apache/fop/fo/FONode.java
src/org/apache/fop/fo/FObj.java
src/org/apache/fop/fo/flow/Flow.java
src/org/apache/fop/layout/AreaTree.java

index 0aa5620b4d9b452c8b1d0d395b2296be0968f06f..13dd8eef63b8f4fa14a47156ae3b781b478b3650 100644 (file)
@@ -13,7 +13,6 @@ import org.apache.fop.apps.FOPException;
 import org.apache.fop.layout.Area;
 import org.apache.fop.layout.AreaClass;
 import org.apache.fop.layout.LinkSet;
-import org.apache.fop.fo.flow.Marker;
 
 // Avalon
 import org.apache.avalon.framework.logger.Logger;
@@ -70,18 +69,15 @@ abstract public class FONode {
     // count of areas generated-by/returned-by
     public int areasGenerated = 0;
 
-    // markers
-    protected Hashtable markers;
-
     protected Logger log;
 
     protected FONode(FObj parent) {
         this.parent = parent;
 
-        markers = new Hashtable();
-
-        if (null != parent)
+        if (parent != null) {
             this.areaClass = parent.areaClass;
+            log = parent.log;
+        }
     }
 
     public void setLogger(Logger logger) {
@@ -218,25 +214,4 @@ abstract public class FONode {
         ((FONode)children.elementAt(this.marker)).rollback(snapshot);
     }
 
-
-    public void addMarker(Marker marker) throws FOPException {
-        String mcname = marker.getMarkerClassName();
-        if (!markers.containsKey(mcname) && children.isEmpty()) {
-            markers.put(mcname, marker);
-        } else {
-            log.error("fo:marker must be an initial child,"
-                                   + "and 'marker-class-name' must be unique for same parent");
-            throw new FOPException("fo:marker must be an initial child,"
-                                   + "and 'marker-class-name' must be unique for same parent");
-        }
-    }
-
-    public boolean hasMarkers() {
-        return !markers.isEmpty();
-    }
-
-    public Vector getMarkers() {
-        return new Vector(markers.values());
-    }
-
 }
index 02d30571986c71a809e38e3be34a25b61d6c6efc..7d804dc9df1f99ea2b8796e9a8724f37a0175b75 100644 (file)
@@ -11,10 +11,12 @@ package org.apache.fop.fo;
 import org.apache.fop.layout.Area;
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.IDReferences;
+import org.apache.fop.fo.flow.Marker;
 
 // Java
 import java.util.Hashtable;
 import java.util.Enumeration;
+import java.util.Vector;
 
 /**
  * base class for representation of formatting objects and their processing
@@ -37,6 +39,9 @@ public class FObj extends FONode {
     public PropertyList properties;
     protected PropertyManager propMgr;
 
+    // markers
+    private Hashtable markers;
+
     protected String name;
 
     protected FObj(FObj parent, PropertyList propertyList) {
@@ -158,5 +163,36 @@ public class FObj extends FONode {
         this.properties.setWritingMode(p.getProperty("writing-mode").getEnum());
     }
 
+
+    public void addMarker(Marker marker) throws FOPException {
+        String mcname = marker.getMarkerClassName();
+        if (!children.isEmpty()) {
+            throw new FOPException("A fo:marker must be an initial child of '"
+                                   + getName());
+        }
+        if (markers==null) {
+            markers = new Hashtable();
+            markers.put(mcname, marker);
+        } else if (!markers.containsKey(mcname) ) {
+            markers.put(mcname, marker);
+        } else {
+            throw new FOPException("marker-class-name '"
+                                   + mcname
+                                   + "' already exists for this parent");
+        }
+    }
+
+    public boolean hasMarkers() {
+        return markers!=null;
+    }
+
+    public Vector getMarkers() {
+        if (markers==null) {
+            log.debug("GetMarkers failed (no markers). Should not happen.");
+            return null;
+        } else {
+            return new Vector(markers.values());
+        }
+    }
 }
 
index 9846c86d7f392c0267303707486ccd6cdfd68e48..2e1f042a83c2247d3b7a9e48aacea3b3c171b63f 100644 (file)
@@ -96,8 +96,8 @@ public class Flow extends FObj {
     protected void setFlowName(String name) throws FOPException {
         if (name == null || name.equals("")) {
             log.warn("A 'flow-name' is required for "
-                                   + getElementName()
-                                   + ". This constraint will be enforced in future versions of FOP");
+                     + getElementName()
+                     + ". This constraint will be enforced in future versions of FOP");
             _flowName = "xsl-region-body";
         } else {
             _flowName = name;
index 85a987b456440d06ead2b74d3b1c0a427540b5eb..d2f247c19cb0a626dd878adec66216a62de584fe 100644 (file)
@@ -63,10 +63,10 @@ public class AreaTree {
         return this.fontInfo;
     }
 
-    public Page getNextPage(Page current, boolean isWithinPageSequence,
-                            boolean isFirstCall) {
-        return streamRenderer.getNextPage(current, isWithinPageSequence,isFirstCall);
-    }
+//      public Page getNextPage(Page current, boolean isWithinPageSequence,
+//                              boolean isFirstCall) {
+//          return streamRenderer.getNextPage(current, isWithinPageSequence,isFirstCall);
+//      }
 
     public Page getPreviousPage(Page current, boolean isWithinPageSequence,
                                 boolean isFirstCall) {