1 32 33 package com.jeantessier.dependencyfinder.ant; 34 35 import java.io.*; 36 import java.util.*; 37 38 import org.apache.tools.ant.*; 39 import org.apache.tools.ant.types.*; 40 41 import com.jeantessier.classreader.*; 42 43 public class ListDeprecatedElements extends Task { 44 private File destfile; 45 private Path path; 46 47 public File getDestfile() { 48 return destfile; 49 } 50 51 public void setDestfile(File destfile) { 52 this.destfile = destfile; 53 } 54 55 public Path createPath() { 56 if (path == null) { 57 path = new Path(getProject()); 58 } 59 60 return path; 61 } 62 63 public Path getPath() { 64 return path; 65 } 66 67 public void execute() throws BuildException { 68 70 if (getPath() == null) { 71 throw new BuildException("path must be set!"); 72 } 73 74 if (getDestfile() == null) { 75 throw new BuildException("destfile must be set!"); 76 } 77 78 log("Saving elements to " + getDestfile().getAbsolutePath()); 79 80 try { 81 PrintWriter out = new PrintWriter(new FileWriter(getDestfile())); 82 83 log("Reading classes from path " + getPath()); 84 85 VerboseListener verboseListener = new VerboseListener(this); 86 DeprecationPrinter printer = new DeprecationPrinter(out); 87 88 ClassfileLoader loader = new AggregatingClassfileLoader(); 89 loader.addLoadListener(verboseListener); 90 loader.addLoadListener(new LoadListenerVisitorAdapter(printer)); 91 loader.load(Arrays.asList(getPath().list())); 92 93 out.close(); 94 } catch (IOException ex) { 95 throw new BuildException(ex); 96 } 97 } 98 } 99 | Popular Tags |