gmazza 2004/11/27 11:58:35
Modified: src/java/org/apache/fop/area AreaTreeHandler.java
PageViewport.java Resolvable.java
src/java/org/apache/fop/fo FOEventHandler.java
src/java/org/apache/fop/layoutmgr
PageSequenceLayoutManager.java
src/java/org/apache/fop/render/rtf RTFHandler.java
Log:
Removed unused logger from FOEventHandler and commented the AreaTreeHandler
to make it more understandable (particularily idref resolving code.)
Revision Changes Path
1.17 +38 -34 xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java
Index: AreaTreeHandler.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- AreaTreeHandler.java 28 Oct 2004 00:06:46 -0000 1.16
+++ AreaTreeHandler.java 27 Nov 2004 19:58:34 -0000 1.17
@@ -60,8 +60,9 @@
*/
public class AreaTreeHandler extends FOEventHandler {
- // TODO: Collecting of statistics should be configurable
- private final boolean collectStatistics = true;
+ // show statistics after document complete?
+ private boolean outputStatistics;
+
private static final boolean MEM_PROFILE_WITH_GC = false;
// for statistics gathering
@@ -82,8 +83,9 @@
// hashmap of arraylists containing pages with id area
private Map idLocations = new HashMap();
- // list of id's yet to be resolved and arraylists of pages
- private Map resolve = new HashMap();
+ // idref's whose corresponding id's have yet to be found
+ // Each idref has a HashSet of Resolvable objects containing that idref
+ private Map unresolvedIDRefs = new HashMap();
private static Log log = LogFactory.getLog(AreaTreeHandler.class);
@@ -98,12 +100,12 @@
OutputStream stream) throws FOPException {
super(userAgent);
- // model = new CachedRenderPagesModel(userAgent, renderType,
- // fontInfo, stream);
model = new RenderPagesModel(userAgent, renderType, fontInfo,
stream);
- if (collectStatistics) {
+ outputStatistics = log.isDebugEnabled();
+
+ if (outputStatistics) {
runtime = Runtime.getRuntime();
}
}
@@ -130,13 +132,13 @@
}
list.add(pv);
- Set todo = (Set)resolve.get(id);
+ Set todo = (Set) unresolvedIDRefs.get(id);
if (todo != null) {
for (Iterator iter = todo.iterator(); iter.hasNext();) {
Resolvable res = (Resolvable)iter.next();
res.resolve(id, list);
}
- resolve.remove(id);
+ unresolvedIDRefs.remove(id);
}
}
@@ -150,16 +152,17 @@
}
/**
- * Add an unresolved object with a given id.
- * @param id the id reference that needs resolving
- * @param res the Resolvable object to resolve
+ * Add an Resolvable object with an unresolved idref
+ * @param idref the idref whose target id has not yet been located
+ * @param res the Resolvable object with the unresolved idref
*/
- public void addUnresolvedID(String id, Resolvable res) {
- Set todo = (Set)resolve.get(id);
+ public void addUnresolvedIDRef(String idref, Resolvable res) {
+ Set todo = (Set) unresolvedIDRefs.get(idref);
if (todo == null) {
todo = new HashSet();
- resolve.put(id, todo);
+ unresolvedIDRefs.put(idref, todo);
}
+ // add Resolvable object to this HashSet
todo.add(res);
}
@@ -171,7 +174,7 @@
*/
public void startDocument() throws SAXException {
//Initialize statistics
- if (collectStatistics) {
+ if (outputStatistics) {
pageCount = 0;
if (MEM_PROFILE_WITH_GC) {
System.gc(); // This takes time but gives better results
@@ -189,9 +192,10 @@
*/
public void endDocument() throws SAXException {
// deal with unresolved references
- for (Iterator iter = resolve.keySet().iterator(); iter.hasNext();) {
+ for (Iterator iter = unresolvedIDRefs.keySet().iterator();
+ iter.hasNext();) {
String id = (String)iter.next();
- Set list = (Set)resolve.get(id);
+ Set list = (Set) unresolvedIDRefs.get(id);
for (Iterator resIter = list.iterator(); resIter.hasNext();) {
Resolvable res = (Resolvable)resIter.next();
if (!res.isResolved()) {
@@ -201,7 +205,7 @@
}
model.endDocument();
- if (collectStatistics) {
+ if (outputStatistics) {
if (MEM_PROFILE_WITH_GC) {
// This takes time but gives better results
System.gc();
@@ -209,18 +213,18 @@
long memoryNow = runtime.totalMemory() - runtime.freeMemory();
long memoryUsed = (memoryNow - initialMemory) / 1024L;
long timeUsed = System.currentTimeMillis() - startTime;
- if (logger != null && logger.isDebugEnabled()) {
- logger.debug("Initial heap size: " + (initialMemory / 1024L)
+ "Kb");
- logger.debug("Current heap size: " + (memoryNow / 1024L) +
"Kb");
- logger.debug("Total memory used: " + memoryUsed + "Kb");
+ if (log != null && log.isDebugEnabled()) {
+ log.debug("Initial heap size: " + (initialMemory / 1024L) +
"Kb");
+ log.debug("Current heap size: " + (memoryNow / 1024L) +
"Kb");
+ log.debug("Total memory used: " + memoryUsed + "Kb");
if (!MEM_PROFILE_WITH_GC) {
- logger.debug(" Memory use is indicative; no GC was
performed");
- logger.debug(" These figures should not be used
comparatively");
+ log.debug(" Memory use is indicative; no GC was
performed");
+ log.debug(" These figures should not be used
comparatively");
}
- logger.debug("Total time used: " + timeUsed + "ms");
- logger.debug("Pages rendered: " + pageCount);
+ log.debug("Total time used: " + timeUsed + "ms");
+ log.debug("Pages rendered: " + pageCount);
if (pageCount > 0) {
- logger.debug("Avg render time: " + (timeUsed /
pageCount) + "ms/page");
+ log.debug("Avg render time: " + (timeUsed / pageCount) +
"ms/page");
}
}
}
@@ -235,14 +239,14 @@
*/
public void endPageSequence(PageSequence pageSequence) {
- if (collectStatistics) {
+ if (outputStatistics) {
if (MEM_PROFILE_WITH_GC) {
// This takes time but gives better results
System.gc();
}
long memoryNow = runtime.totalMemory() - runtime.freeMemory();
- if (logger != null) {
- logger.debug("Current heap size: " + (memoryNow / 1024L) +
"Kb");
+ if (log != null) {
+ log.debug("Current heap size: " + (memoryNow / 1024L) +
"Kb");
}
}
@@ -307,10 +311,10 @@
if (idLocations.containsKey(ids[count])) {
res.resolve(ids[count],
(List)idLocations.get(ids[count]));
} else {
- Set todo = (Set)resolve.get(ids[count]);
+ Set todo = (Set) unresolvedIDRefs.get(ids[count]);
if (todo == null) {
todo = new HashSet();
- resolve.put(ids[count], todo);
+ unresolvedIDRefs.put(ids[count], todo);
}
todo.add(ext);
}
1.6 +1 -1 xml-fop/src/java/org/apache/fop/area/PageViewport.java
Index: PageViewport.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/PageViewport.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PageViewport.java 24 Nov 2004 21:07:28 -0000 1.5
+++ PageViewport.java 27 Nov 2004 19:58:34 -0000 1.6
@@ -131,7 +131,7 @@
* @param id the id of the reference
* @param res the resolver of the reference
*/
- public void addUnresolvedID(String id, Resolvable res) {
+ public void addUnresolvedIDRef(String id, Resolvable res) {
if (unresolved == null) {
unresolved = new HashMap();
}
1.2 +6 -6 xml-fop/src/java/org/apache/fop/area/Resolvable.java
Index: Resolvable.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/Resolvable.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Resolvable.java 24 Oct 2004 00:03:49 -0000 1.1
+++ Resolvable.java 27 Nov 2004 19:58:34 -0000 1.2
@@ -21,9 +21,9 @@
import java.util.List;
/**
- * Resolvable Interface.
- * Classes that implement this can be resolved when
- * an id is added to the area tree.
+ * Resolvable Interface. Classes that implement this interface contain
+ * idrefs (see Section 5.11 of spec for definition of <idref> datatype)
+ * that are resolved when their target IDs are added to the area tree.
*/
public interface Resolvable {
@@ -35,9 +35,9 @@
boolean isResolved();
/**
- * Get the array of id references of this resolvable object.
+ * Get the array of idrefs of this resolvable object.
* If this object contains child resolvables that are
- * resolved through this then it should return the id's of
+ * resolved through this then it should return the idref's of
* the child also.
*
* @return the id references for resolving this object
1.5 +1 -14 xml-fop/src/java/org/apache/fop/fo/FOEventHandler.java
Index: FOEventHandler.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOEventHandler.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- FOEventHandler.java 20 Oct 2004 21:04:43 -0000 1.4
+++ FOEventHandler.java 27 Nov 2004 19:58:34 -0000 1.5
@@ -46,8 +46,6 @@
import org.apache.fop.fo.pagination.Flow;
import org.apache.fop.fo.pagination.PageSequence;
import org.apache.fop.fonts.FontInfo;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
/**
@@ -73,9 +71,6 @@
*/
protected FontInfo fontInfo;
- /** Logger for FOEventHandler-related messages **/
- protected static Log logger = LogFactory.getLog(FOEventHandler.class);
-
/**
* The current set of id's in the FO tree.
* This is used so we know if the FO tree contains duplicates.
@@ -102,14 +97,6 @@
*/
public Set getIDReferences() {
return idReferences;
- }
-
- /**
- * Returns the Commons-Logging instance for this class
- * @return The Commons-Logging instance
- */
- protected Log getLogger(Log logger) {
- return logger;
}
/**
1.14 +3 -3
xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
Index: PageSequenceLayoutManager.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- PageSequenceLayoutManager.java 24 Nov 2004 21:07:30 -0000 1.13
+++ PageSequenceLayoutManager.java 27 Nov 2004 19:58:35 -0000 1.14
@@ -340,8 +340,8 @@
public void addUnresolvedArea(String id, Resolvable res) {
// add unresolved to tree
// adds to the page viewport so it can serialize
- curPage.addUnresolvedID(id, res);
- areaTreeHandler.addUnresolvedID(id, curPage);
+ curPage.addUnresolvedIDRef(id, res);
+ areaTreeHandler.addUnresolvedIDRef(id, curPage);
}
/**
1.40 +3 -3
xml-fop/src/java/org/apache/fop/render/rtf/RTFHandler.java
Index: RTFHandler.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/render/rtf/RTFHandler.java,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- RTFHandler.java 24 Nov 2004 21:07:30 -0000 1.39
+++ RTFHandler.java 27 Nov 2004 19:58:35 -0000 1.40
@@ -24,8 +24,8 @@
import java.io.OutputStreamWriter;
import java.util.Iterator;
-import org.apache.commons.logging.impl.SimpleLog;
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.FOEventHandler;
@@ -95,7 +95,7 @@
private RtfFile rtfFile;
private final OutputStream os;
- private final Log log = new SimpleLog("FOP/RTF");
+ private static Log log = LogFactory.getLog(RTFHandler.class);
private RtfSection sect;
private RtfDocumentArea docArea;
private int iNestCount;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]