1 package net.sourceforge.pmd.renderers;
2
3 import java.io.IOException;
4 import java.io.StringWriter;
5 import java.io.Writer;
6
7 import net.sourceforge.pmd.DataSource;
8 import net.sourceforge.pmd.Report;
9
10 public abstract class AbstractRenderer implements Renderer {
11
12 protected boolean showSuppressedViolations = true;
13 private Writer writer;
14 private Report mainReport;
15
16 public void showSuppressedViolations(boolean show) {
17 this.showSuppressedViolations = show;
18 }
19
20 public String render(Report report) {
21 StringWriter w = new StringWriter();
22 try {
23 render(w, report);
24 } catch (IOException e) {
25 throw new Error("StringWriter doesn't throw IOException", e);
26 }
27 return w.toString();
28 }
29
30
31 public void setWriter(Writer writer) {
32 this.writer = writer;
33 }
34
35 public Writer getWriter() {
36 return writer;
37 }
38
39 public void start() throws IOException {
40
41
42 mainReport = new Report();
43 }
44
45 public void startFileAnalysis(DataSource dataSource) {}
46
47 public void renderFileReport(Report report) throws IOException {
48
49
50 mainReport.merge(report);
51 }
52
53 public void end() throws IOException {
54
55
56 render(writer, mainReport);
57 }
58 }