View Javadoc

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.PMD;
7   import net.sourceforge.pmd.Report;
8   import net.sourceforge.pmd.IRuleViolation;
9   
10  import java.util.Iterator;
11  
12  public class TextRenderer extends AbstractRenderer implements Renderer {
13  
14      public String render(Report report) {
15          StringBuffer buf = new StringBuffer();
16  
17          if (report.isEmpty()) {
18              buf.append("No problems found!");
19              if (showSuppressedViolations) {
20                  addSuppressed(report, buf);
21              }
22              return buf.toString();
23          }
24  
25          for (Iterator i = report.iterator(); i.hasNext();) {
26              IRuleViolation rv = (IRuleViolation) i.next();
27              buf.append(PMD.EOL + rv.getFilename());
28              buf.append(":" + Integer.toString(rv.getBeginLine()));
29              buf.append("\t" + rv.getDescription());
30          }
31  
32          for (Iterator i = report.errors(); i.hasNext();) {
33              Report.ProcessingError error = (Report.ProcessingError) i.next();
34              buf.append(PMD.EOL + error.getFile());
35              buf.append("\t-");
36              buf.append("\t" + error.getMsg());
37          }
38  
39          if (showSuppressedViolations) {
40              addSuppressed(report, buf);
41          }
42  
43          return buf.toString();
44      }
45  
46      private void addSuppressed(Report report, StringBuffer buf) {
47          for (Iterator i = report.getSuppressedRuleViolations().iterator(); i.hasNext();) {
48              Report.SuppressedViolation excluded = (Report.SuppressedViolation) i.next();
49              buf.append(PMD.EOL + excluded.getRuleViolation().getRule().getName() + " rule violation suppressed by " + (excluded.suppressedByNOPMD() ? "//NOPMD" : "Annotation") + " in " + excluded.getRuleViolation().getFilename());
50          }
51      }
52  }