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