View Javadoc
1 /* CounterVertex.java */ 2 package org.quilt.cover.stmt; 3 4 import org.apache.bcel.generic.*; 5 import org.quilt.cl.*; 6 import org.quilt.graph.*; 7 8 /*** 9 * <p>A CodeVertex which carries counter instrumentation and a label. 10 * The counter has an index. Whenever the flow of execution passes 11 * through this vertex, the counter code adds 1 to the hit count table, 12 * to <code>q$$q[n]</code>, where <code>n</code> is the counter index.</p> 13 * 14 * <p>Counter indexes are unique and assigned consecutively. They are 15 * not the same as vertex indexes. In the current revision of the 16 * software, counter vertices are also labeled with the counter index.</p> 17 * 18 * @author <a href="mailto:jddixon@users.sourceforge.net">Jim Dixon</a> 19 */ 20 public class CounterVertex extends CodeVertex { 21 22 /*** 23 * Create a code vertex with default bytecode offset, line number, 24 * empty instruction list, and no label. 25 * 26 * @param g Graph which the vertex belongs to. 27 */ 28 public CounterVertex (ControlFlowGraph g) { 29 super(g); 30 } 31 /*** 32 * Create a counter vertex, specifying a label 33 * 34 * @param g Graph which the vertex belongs to. 35 * @param l The String label applied to the vertex. 36 */ 37 public CounterVertex (ControlFlowGraph g, String lbl) { 38 this(g); 39 label_ = lbl; 40 } 41 42 // OTHER METHODS //////////////////////////////////////////////// 43 /*** 44 * @return Graph index and Vertex index in a neatly formatted String, 45 * including the label if there is one, *not* newline-terminated. 46 */ 47 public String toString () { 48 StringBuffer sb = new StringBuffer().append("Counter ") 49 .append(getGraph().getIndex()) 50 .append(":").append(getIndex()); 51 if (label_ != null) { 52 sb.append(" {").append(label_).append("}"); 53 } 54 return sb.toString(); 55 } 56 /*** 57 * @param b If true, add label (if any) and instruction list. 58 * @return A neatly formatted String ending with a newline. 59 */ 60 public String toString (boolean b) { 61 62 StringBuffer sb = new StringBuffer().append(toString()); 63 if (b) { 64 sb.append("\n ilist: "); 65 InstructionHandle ih = ilist.getStart(); 66 while ( ih != null) { 67 sb.append(ih.getInstruction()); 68 } 69 } 70 return sb.toString(); 71 } 72 }

This page was automatically generated by Maven