View Javadoc
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