bloritsch 01/12/14 08:11:15
Modified: src/scratchpad/org/apache/avalon/excalibur/profile
ProfileReport.java
Added: src/scratchpad/org/apache/avalon/excalibur/profile/doc-files
call-order.png
Log:
Update ProfileReport to support hierarchical naming
Revision Changes Path
1.2 +33 -5
jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/profile/ProfileReport.java
Index: ProfileReport.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/profile/ProfileReport.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProfileReport.java 2001/12/13 20:42:37 1.1
+++ ProfileReport.java 2001/12/14 16:11:14 1.2
@@ -26,12 +26,40 @@
void startReport();
/**
- * This method is used to write the names for the individual sample
points.
- * It is called once at the beginning of a profile run, but after
- * <code>startReport</code>. If this method is not called, then the
report
- * must supply it's own default names (typically "column1", "column2",
etc).
+ * The addGroup method is called when using cascading Profilables. The
+ * algorithm is that each group is fully evaluated until there are no
more
+ * subgroups (i.e. the column names). In order to grasp how it should be
+ * called, please reference the following group heirarchy:
+ *
+ * <p><center><img src="doc-files/call-order.png"/></center></p>
+ *
+ * <p>
+ * In this hierarchy, the call order would be like this:
+ * </p>
+ * <pre>
+ * report.addGroup("G1", {"C1", "C2"});
+ * report.addGroup("G2", {"C3", "C4"});
+ * </pre>
+ * <p>
+ * In the event that there are subgroups before we get to the column
name,
+ * the tree is fully evaluated to the end. For instance, let us assume
+ * that "C2" has two column names "C2a" and "C2b". The call order
would
+ * be like this:
+ * </p>
+ * <pre>
+ * report.addGroup("G1", {"C1", "C2"});
+ * // no sub groups for "C1"
+ * report.addGroup("C2", {"C2a", "C2b"});
+ * report.addGroup("G2", {"C3", "C4"});
+ * </pre>
+ * <p>
+ * When you align the last line of names, this is the order of samples
+ * passed in the sample() method. In this last example, the order
would
+ * be "C1", "C2a", "C2b", "C3", "C4". It is imperitive that the
samples
+ * gathered are in this precise order.
+ * </p>
*/
- void setColumnNames(String[] columnNames);
+ void addGroup( String groupName, String[] subgroupNames );
/**
* This method is called each time the Profiler takes a sample. It has
the
1.1
jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/profile/doc-files/call-order.png
<<Binary file>>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>