1
2
3
4 package net.sourceforge.pmd.renderers;
5
6 import java.io.IOException;
7
8 import net.sourceforge.pmd.PMD;
9 import net.sourceforge.pmd.lang.dfa.report.ReportHTMLPrintVisitor;
10 import net.sourceforge.pmd.lang.dfa.report.ReportTree;
11 import net.sourceforge.pmd.lang.rule.properties.StringProperty;
12
13
14
15
16 public class YAHTMLRenderer extends AbstractAccumulatingRenderer {
17
18 public static final String NAME = "yahtml";
19
20 public static final StringProperty OUTPUT_DIR = new StringProperty("outputDir", "Output directory.", null, 0);
21
22 public YAHTMLRenderer() {
23
24 super(NAME, "Yet Another HTML format.");
25 definePropertyDescriptor(OUTPUT_DIR);
26 }
27
28 public String defaultFileExtension() { return "html"; }
29
30
31
32
33 @Override
34 public void end() throws IOException {
35 String outputDir = getProperty(OUTPUT_DIR);
36 ReportTree tree = report.getViolationTree();
37 tree.getRootNode().accept(new ReportHTMLPrintVisitor(outputDir == null ? ".." : outputDir));
38 writer.write("<h3 align=\"center\">The HTML files are located "
39 + (outputDir == null ? "above the project directory" : "in '" + outputDir + '\'') + ".</h3>" + PMD.EOL);
40 }
41 }