KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > csdl > jblanket > report > element > MethodSetsElement


1 package csdl.jblanket.report.element;
2
3 import java.io.PrintWriter JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.Map JavaDoc;
6 import java.util.TreeMap JavaDoc;
7
8 /**
9  * Provides a wrapper for the 'MethodSets' element in the aggregate XML file. An instance of a
10  * MethodSetsElement represents elements in a MethodSets.
11  * <p>
12  * An example of a 'MethodSets' as a MethodSetsElement with no 'MethodSet's:
13  * <pre>
14  * &lt;MethodSets tested="0" untested="0" oneline="0" constructor="0" timestamp=""/&gt;
15  * </pre>
16  * <p>
17  * An example of a 'MethodSets' as a MethodSetsElement with 'MethodSet's:
18  * <pre>
19  * &lt;MethodSets tested="1" untested="0" oneline="0"&gt;
20  * &lt;MethodSet class="String" package="java.lang" tested="1" untested="0" oneline="0"
21  * constructor="0" timestamp=""&gt;
22  * &lt;tested&gt;
23  * &lt;Method name="indexOf" package="java.lang.String"&gt;
24  * &lt;Parameter type="java.lang.String"/&gt;
25  * &lt;Parameter type="int"/&gt;
26  * &lt;/Method&gt;
27  * &lt;/tested&gt;
28  * &lt;untested/&gt;
29  * &lt;oneline/&gt;
30  * &lt;constructor/&gt;
31  * &lt;/MethodSet&gt;
32  * &lt;/MethodSets&gt;
33  * </pre>
34  *
35  * @author Joy M. Agustin
36  * @version $Id: MethodSetsElement.java,v 1.1 2004/11/07 00:32:39 timshadel Exp $
37  */

38 public class MethodSetsElement {
39   
40   /** Contains all MethodSet elements; maps className -> MethodSetElement */
41   private Map JavaDoc methodSetMap;
42
43   /**
44    * Constructs a new MethodSetsElement object.
45    */

46   public MethodSetsElement() {
47     this.methodSetMap = new TreeMap JavaDoc();
48   }
49
50   /**
51    * Puts a MethodSetElement object into this MethodSetsElement object.
52    *
53    * @param className the name of the class of <code>methodSet</code>.
54    * @param methodSet the MethodSetElement to store.
55    */

56   public void put(String JavaDoc className, MethodSetElement methodSet) {
57     this.methodSetMap.put(className, methodSet);
58   }
59
60   /**
61    * Gets the MethodSetElement associated with <code>className</code>.
62    *
63    * @param className the name of the class who's MethodSetElement to retrieve.
64    * @return the MethodSetElement for <code>className</code>.
65    */

66   public Object JavaDoc get(String JavaDoc className) {
67     return this.methodSetMap.get(className);
68   }
69   
70   /**
71    * Returns a String representation of this MethodSetsElement as found in an aggregate XML file.
72    *
73    * @return a String representation of this MethodSetsElement.
74    */

75   public String JavaDoc toString() {
76
77     int tested = 0;
78     int untested = 0;
79     int oneline = 0;
80     int constructor = 0;
81     
82     for (Iterator JavaDoc i = this.methodSetMap.values().iterator(); i.hasNext(); ) {
83       MethodSetElement methodSet = (MethodSetElement) i.next();
84       tested += methodSet.getTestedSize();
85       untested += methodSet.getUntestedSize();
86       oneline += methodSet.getOnelineSize();
87       constructor += methodSet.getConstructorSize();
88     }
89
90     StringBuffer JavaDoc buffer = new StringBuffer JavaDoc();
91     buffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
92     buffer.append("<MethodSets tested=\"" + tested + "\"");
93     buffer.append(" untested=\"" + untested + "\"");
94     buffer.append(" oneline=\"" + oneline + "\"");
95     buffer.append(" constructor=\"" + constructor + "\">\n");
96     for (Iterator JavaDoc i = this.methodSetMap.values().iterator(); i.hasNext(); ) {
97       buffer.append((MethodSetElement) i.next());
98       buffer.append("\n");
99     }
100     buffer.append("</MethodSets>");
101
102     return buffer.toString();
103   }
104   
105   /**
106    * Writes this MethodSetsElement to writer.
107    *
108    * @param writer points to an output file.
109    */

110   public void write(PrintWriter JavaDoc writer) {
111
112     int tested = 0;
113     int untested = 0;
114     int oneline = 0;
115     int constructor = 0;
116     
117     for (Iterator JavaDoc i = this.methodSetMap.values().iterator(); i.hasNext(); ) {
118       MethodSetElement methodSet = (MethodSetElement) i.next();
119       tested += methodSet.getTestedSize();
120       untested += methodSet.getUntestedSize();
121       oneline += methodSet.getOnelineSize();
122       constructor += methodSet.getConstructorSize();
123     }
124
125     writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
126     writer.write("<MethodSets tested=\"" + tested + "\"");
127     writer.write(" untested=\"" + untested + "\"");
128     writer.write(" oneline=\"" + oneline + "\"");
129     writer.write(" constructor=\"" + constructor + "\">\n");
130     for (Iterator JavaDoc i = this.methodSetMap.values().iterator(); i.hasNext(); ) {
131       ((MethodSetElement) i.next()).write(writer);
132       writer.write("\n");
133     }
134     writer.write("</MethodSets>");
135   }
136 }
Popular Tags