View Javadoc
1 /*** 2 * XMLSummary 3 * 4 * This is a summary coverage report 5 * in XML. 6 * 7 * Report looks like: 8 * <PRE> 9 * <?xml version="1.0"?> 10 * 11 * <CoverageReport date="2001/12/29 10:30AM"> 12 * <Class name="..."> 13 * <Method name="doSomething()V"> 14 * <Coverage metric="stmt" percent="43.8" /> 15 * </Method> 16 * ... 17 * </Class> 18 * ... 19 * </CoverageReport> 20 *</pre> 21 */ 22 23 package junit.quilt.reports; 24 25 import java.io.OutputStream; 26 import java.io.OutputStreamWriter; 27 import java.io.PrintWriter; 28 import java.io.IOException; 29 30 import java.text.DateFormat; 31 import java.text.SimpleDateFormat; 32 import java.util.Date; 33 import java.util.Enumeration; 34 35 import java.util.Iterator; 36 import java.util.Set; 37 import java.util.Map; 38 39 import javax.swing.tree.*; 40 41 import junit.quilt.framework.*; 42 43 public class XMLSummary 44 extends Object 45 implements Report 46 { 47 public void writeNode( PrintWriter out, 48 QuiltRegistry registry, 49 int level, 50 String levels[], 51 TreeNode nodes[]) { 52 53 TreeNode node = nodes[level]; 54 55 indentTo(out, level); 56 out.println("<" + levels[level] + 57 " name=\"" + nodes[level].toString() + "\">"); 58 59 if (level == levels.length - 1) { // Base Case 60 TreePath tp = new TreePath( nodes ); 61 QuiltCollector collect = registry.getCollector( tp ); 62 if (collect != null) { 63 Set capabilities = collect.getCapabilities(); 64 Iterator caps = capabilities.iterator(); 65 66 while (caps.hasNext()) { 67 String cap = (String) caps.next(); 68 69 Set all = collect.getAll(cap); 70 Set covered = collect.getCovered(cap); 71 72 indentTo(out, level + 1); 73 double perc = 100.0 * ((double) covered.size() / 74 (double) all.size()); 75 out.println("<Coverage " + 76 "metric=\"" + cap + "\" " + 77 "total=\"" + all.size() + "\" " + 78 "covered=\"" + covered.size() + "\" " + 79 "percent=\"" + perc + "\" />"); 80 } 81 } 82 } else { 83 Enumeration children = node.children(); 84 while (children.hasMoreElements()) { 85 TreeNode next = (TreeNode) children.nextElement(); 86 nodes[level + 1] = next; 87 writeNode(out, registry, level + 1, levels, nodes); 88 } 89 } 90 91 indentTo(out, level); 92 out.println("</" + levels[level] + ">"); 93 } 94 95 96 public void writeReport( OutputStream out, 97 QuiltRegistry registry ) 98 throws IOException 99 { 100 String levels[] = registry.getLevels(); 101 102 PrintWriter pw = new PrintWriter( new OutputStreamWriter( out ) ); 103 pw.println("<?xml version=\"1.0\"?>"); 104 pw.println("<CoverageReport>"); 105 106 TreeNode nodes[] = new TreeNode[levels.length]; 107 nodes[0] = registry.getContents(); 108 109 writeNode( pw, registry, 0, levels, nodes ); 110 pw.println("</CoverageReport>"); 111 pw.flush(); 112 } 113 114 private void indentTo(PrintWriter out, int size) { 115 for (int j = 0; j < size + 1; j++) { 116 out.print(" "); 117 } 118 } 119 } 120

This page was automatically generated by Maven