KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > pmd > renderers > TextRenderer


1 /**
2  * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3  */

4 package net.sourceforge.pmd.renderers;
5
6 import net.sourceforge.pmd.IRuleViolation;
7 import net.sourceforge.pmd.PMD;
8 import net.sourceforge.pmd.Report;
9
10 import java.io.IOException JavaDoc;
11 import java.io.Writer JavaDoc;
12 import java.util.Iterator JavaDoc;
13
14 public class TextRenderer extends AbstractRenderer {
15
16     public void render(Writer JavaDoc writer, Report report) throws IOException JavaDoc {
17         StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
18
19         if (report.isEmpty()) {
20             buf.append("No problems found!");
21             if (showSuppressedViolations) {
22                 addSuppressed(report, buf);
23             }
24             writer.write(buf.toString());
25             return;
26         }
27         Iterator JavaDoc i;
28         
29         for (i = report.iterator(); i.hasNext();) {
30             buf.setLength(0);
31             IRuleViolation rv = (IRuleViolation) i.next();
32             buf.append(PMD.EOL).append(rv.getFilename());
33             buf.append(':').append(Integer.toString(rv.getBeginLine()));
34             buf.append('\t').append(rv.getDescription());
35             writer.write(buf.toString());
36         }
37
38         for (i = report.errors(); i.hasNext();) {
39             buf.setLength(0);
40             Report.ProcessingError error = (Report.ProcessingError) i.next();
41             buf.append(PMD.EOL).append(error.getFile());
42             buf.append("\t-\t").append(error.getMsg());
43             writer.write(buf.toString());
44         }
45
46         if (showSuppressedViolations) {
47             buf.setLength(0);
48             addSuppressed(report, buf);
49             writer.write(buf.toString());
50         }
51     }
52
53     private void addSuppressed(Report report, StringBuffer JavaDoc buf) {
54         
55         Report.SuppressedViolation excluded;
56         
57         for (Iterator JavaDoc i = report.getSuppressedRuleViolations().iterator(); i.hasNext();) {
58             excluded = (Report.SuppressedViolation) i.next();
59             buf.append(PMD.EOL);
60             buf.append(excluded.getRuleViolation().getRule().getName());
61             buf.append(" rule violation suppressed by ");
62             buf.append(excluded.suppressedByNOPMD() ? "//NOPMD" : "Annotation");
63             buf.append(" in ").append(excluded.getRuleViolation().getFilename());
64         }
65     }
66 }
67
Popular Tags