01: package com.kirkk.analyzer.textui;
02:
03: import java.io.File;
04:
05: import org.apache.tools.ant.BuildException;
06: import org.apache.tools.ant.Task;
07:
08: /*
09: * Very simple ant task for the JarAnalyzer
10: * http://www.kirkk.com/wiki/wiki.php/Main/JarAnalyzer
11: */
12: public class JarAnalyzerTask extends Task {
13: private File srcdir;
14: private File destfile;
15: private String packageFilter;
16: private String jarFilter;
17: private String summaryclass;
18:
19: public void setJarFilter(String jarFilter) {
20: this .jarFilter = jarFilter;
21: }
22:
23: public void setPackageFilter(String packageFilter) {
24: this .packageFilter = packageFilter;
25: }
26:
27: public void setSrcdir(File srcdir) {
28: this .srcdir = srcdir;
29: }
30:
31: public void setDestfile(File destfile) {
32: this .destfile = destfile;
33: }
34:
35: public void setSummaryclass(String summaryclass) {
36: this .summaryclass = summaryclass;
37: }
38:
39: public void execute() throws BuildException {
40: validateAttributes();
41: try {
42: Class clazz = Class.forName(summaryclass);
43: Summary summary = (Summary) clazz.newInstance();
44: summary.createSummary(srcdir, destfile, packageFilter,
45: jarFilter);
46: log(destfile + " successfully created");
47: } catch (Exception exc) {
48: throw new BuildException(exc);
49: }
50: }
51:
52: private void validateAttributes() {
53: if (null == srcdir) {
54: throw new BuildException("Missing srcdir");
55: }
56: if (null == destfile) {
57: throw new BuildException("Missing destfile");
58: }
59: if (!(srcdir.exists() && srcdir.isDirectory())) {
60: throw new BuildException("srcdir must be a valid directory");
61: }
62: if (destfile.isDirectory()) {
63: throw new BuildException("srcdir must be a file");
64: }
65: if (null == summaryclass) {
66: throw new BuildException("Missing summaryclass");
67: }
68: }
69: }
|