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