TextRenderer.java
01 /**
02  * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
03  */
04 package net.sourceforge.pmd.renderers;
05 
06 import java.io.IOException;
07 import java.io.Writer;
08 import java.util.Iterator;
09 import java.util.Properties;
10 
11 import net.sourceforge.pmd.PMD;
12 import net.sourceforge.pmd.Report;
13 import net.sourceforge.pmd.RuleViolation;
14 
15 /**
16  * Renderer to simple text format.
17  */
18 public class TextRenderer extends AbstractIncrementingRenderer {
19 
20     public static final String NAME = "text";
21 
22     public TextRenderer(Properties properties) {
23   super(NAME, "Text format.", properties);
24     }
25 
26     /**
27      * {@inheritDoc}
28      */
29     @Override
30     public void start() throws IOException {
31     }
32 
33     /**
34      * {@inheritDoc}
35      */
36     @Override
37     public void renderFileViolations(Iterator<RuleViolation> violationsthrows IOException {
38   Writer writer = getWriter();
39   StringBuffer buf = new StringBuffer();
40 
41   while (violations.hasNext()) {
42       buf.setLength(0);
43       RuleViolation rv = violations.next();
44       buf.append(rv.getFilename());
45       buf.append(':').append(Integer.toString(rv.getBeginLine()));
46       buf.append('\t').append(rv.getDescription()).append(PMD.EOL);
47       writer.write(buf.toString());
48   }
49     }
50 
51     /**
52      * {@inheritDoc}
53      */
54     @Override
55     public void end() throws IOException {
56   Writer writer = getWriter();
57   StringBuffer buf = new StringBuffer(500);
58   if (!errors.isEmpty()) {
59 
60       for (Report.ProcessingError error : errors) {
61     buf.setLength(0);
62     buf.append(error.getFile());
63     buf.append("\t-\t").append(error.getMsg()).append(PMD.EOL);
64     writer.write(buf.toString());
65       }
66   }
67 
68   for (Report.SuppressedViolation excluded : suppressed) {
69       buf.setLength(0);
70       buf.append(excluded.getRuleViolation().getRule().getName());
71       buf.append(" rule violation suppressed by ");
72       buf.append(excluded.suppressedByNOPMD() "//NOPMD" "Annotation");
73       buf.append(" in ").append(excluded.getRuleViolation().getFilename()).append(PMD.EOL);
74       writer.write(buf.toString());
75   }
76     }
77 
78 }