KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > groboutils > codecoverage > v2 > ant > XmlReportStyle


1 /*
2  * @(#)XmlReportStyle.java
3  *
4  * Copyright (C) 2004 Matt Albrecht
5  * groboclown@users.sourceforge.net
6  * http://groboutils.sourceforge.net
7  *
8  * Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the "Software"),
10  * to deal in the Software without restriction, including without limitation
11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12  * and/or sell copies of the Software, and to permit persons to whom the
13  * Software is furnished to do so, subject to the following conditions:
14  *
15  * The above copyright notice and this permission notice shall be included in
16  * all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24  * DEALINGS IN THE SOFTWARE.
25  */

26
27 package net.sourceforge.groboutils.codecoverage.v2.ant;
28
29 import java.io.File JavaDoc;
30 import java.io.FileOutputStream JavaDoc;
31 import java.io.IOException JavaDoc;
32 import java.io.OutputStreamWriter JavaDoc;
33
34 import net.sourceforge.groboutils.codecoverage.v2.report.OutputXml;
35
36 import org.apache.tools.ant.BuildException;
37 import org.apache.tools.ant.Project;
38 import org.w3c.dom.Document JavaDoc;
39
40
41
42 /**
43  * Generates the XML file for the report.
44  *
45  * @author Matt Albrecht <a HREF="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
46  * @version $Date: 2004/04/15 05:48:25 $
47  * @since March 15, 2003
48  */

49 public class XmlReportStyle implements IReportStyle
50 {
51     private File JavaDoc outdir;
52     private String JavaDoc prefix = "CoverageReport-";
53     private String JavaDoc suffix = ".xml";
54     
55     
56     public void setPrefix( String JavaDoc p )
57     {
58         if (p == null)
59         {
60             p = "";
61         }
62         this.prefix = p;
63     }
64     
65     
66     public void setSuffix( String JavaDoc s )
67     {
68         if (s == null)
69         {
70             s = "";
71         }
72         this.suffix = s;
73     }
74     
75     
76     public void setDestDir( File JavaDoc dir )
77     {
78         this.outdir = dir;
79     }
80     
81     
82     /**
83      * Called when the task is finished generating all the reports. This
84      * may be useful for styles that join all the reports together.
85      */

86     public void reportComplete( Project project, java.util.Vector JavaDoc errorList )
87             throws BuildException, IOException JavaDoc
88     {
89         // do nothing
90
}
91     
92     
93     public void generateReport( Project project, Document JavaDoc doc,
94             String JavaDoc moduleName )
95             throws BuildException, IOException JavaDoc
96     {
97         if (this.outdir == null)
98         {
99             throw new BuildException( "Must set the 'destdir' attribute." );
100         }
101         project.log( "Generating XML report for module "+moduleName,
102             Project.MSG_VERBOSE );
103         File JavaDoc outFile = new File JavaDoc( this.outdir,
104             this.prefix + moduleName + this.suffix );
105         File JavaDoc parent = outFile.getParentFile();
106         if (!parent.exists())
107         {
108             parent.mkdirs();
109         }
110         OutputStreamWriter JavaDoc osw = null;
111         try
112         {
113             osw = new OutputStreamWriter JavaDoc( new FileOutputStream JavaDoc( outFile ),
114                 "UTF8" );
115             (new OutputXml()).write( doc.getDocumentElement(), osw, null );
116         }
117         finally
118         {
119             if (osw != null)
120             {
121                 osw.close();
122             }
123         }
124     }
125 }
126
127
Popular Tags