1
2
3
4 package net.sourceforge.pmd.renderers;
5
6 import java.io.IOException;
7 import java.io.Writer;
8 import java.util.Iterator;
9
10 import net.sourceforge.pmd.RuleViolation;
11
12
13
14
15 public class EmacsRenderer extends AbstractIncrementingRenderer {
16
17 public static final String NAME = "emacs";
18
19 protected static final String EOL = System.getProperty("line.separator", "\n");
20
21 public EmacsRenderer() {
22 super(NAME, "GNU Emacs integration.");
23 }
24
25 public String defaultFileExtension() { return "emacs"; }
26
27
28
29
30 @Override
31 public void renderFileViolations(Iterator<RuleViolation> violations) throws IOException {
32 Writer writer = getWriter();
33 StringBuilder buf = new StringBuilder();
34 while (violations.hasNext()) {
35 RuleViolation rv = violations.next();
36 buf.setLength(0);
37 buf.append(rv.getFilename());
38 buf.append(':').append(Integer.toString(rv.getBeginLine()));
39 buf.append(": ").append(rv.getDescription()).append(EOL);
40 writer.write(buf.toString());
41 }
42 }
43 }