1 package net.sourceforge.pmd.ant;
2
3 import net.sourceforge.pmd.renderers.CSVRenderer;
4 import net.sourceforge.pmd.renderers.HTMLRenderer;
5 import net.sourceforge.pmd.renderers.Renderer;
6 import net.sourceforge.pmd.renderers.TextRenderer;
7 import net.sourceforge.pmd.renderers.XMLRenderer;
8 import org.apache.tools.ant.BuildException;
9
10 import java.io.BufferedWriter;
11 import java.io.File;
12 import java.io.FileWriter;
13 import java.io.IOException;
14 import java.io.Writer;
15
16 public class Formatter {
17
18 private Renderer renderer;
19 private File toFile;
20
21 public void setType(String type) {
22 if (type.equals("xml")) {
23 renderer = new XMLRenderer();
24 } else if (type.equals("html")) {
25 renderer = new HTMLRenderer();
26 } else if (type.equals("csv")) {
27 renderer = new CSVRenderer();
28 } else if (type.equals("text")) {
29 renderer = new TextRenderer();
30 } else if (!type.equals("")) {
31 try {
32 renderer = (Renderer)Class.forName(type).newInstance();
33 } catch (Exception e) {
34 e.printStackTrace();
35 throw new BuildException("Unable to instantiate custom formatter: " + type);
36 }
37 } else {
38 throw new BuildException("Formatter type must be 'xml', 'text', 'html', 'csv', or a class name; you specified " + type);
39 }
40 }
41
42 public void setToFile(File toFile) {
43 this.toFile = toFile;
44 }
45
46 public Renderer getRenderer() {
47 return renderer;
48 }
49
50 public boolean isToFileNull() {
51 return toFile == null;
52 }
53
54 public Writer getToFileWriter(String baseDir) throws IOException {
55 if (!toFile.isAbsolute()) {
56 return new BufferedWriter(new FileWriter(new File(baseDir + System.getProperty("file.separator") + toFile.getPath())));
57 }
58 return new BufferedWriter(new FileWriter(toFile));
59 }
60
61 public String toString() {
62 return "file = " + toFile + "; renderer = " + renderer.getClass().getName();
63 }
64 }
This page was automatically generated by Maven