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> violations) throws 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 }
|