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]