KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > spoon > LtSpoonTask


1 package spoon;
2
3 import java.io.File JavaDoc;
4 import java.util.ArrayList JavaDoc;
5 import java.util.List JavaDoc;
6
7 import org.apache.tools.ant.BuildException;
8
9 /**
10  * This class implements an Ant task for Spoon that encapsulates
11  * {@link spoon.LtLauncher}.
12  */

13 public class LtSpoonTask extends SpoonTask {
14
15     String JavaDoc sourcepath;
16
17     List JavaDoc<ProcessorType> ltprocessorTypes = new ArrayList JavaDoc<ProcessorType>();
18
19     /**
20      * Default constructor.
21      */

22     public LtSpoonTask() {
23         setClassname(LtLauncher.class.getName());
24     }
25
26     /**
27      * Adds a new processor type to be instantiated and used by Spoon when
28      * processing the code.
29      */

30     public void addLtProcessor(ProcessorType processorType) {
31         this.ltprocessorTypes.add(processorType);
32     }
33
34     /**
35      * Executes the task.
36      */

37     @Override JavaDoc
38     public void execute() throws BuildException {
39         if (classname == null) {
40             throw new BuildException("classname is mandatory");
41         }
42
43         if (sourcepath != null) {
44             createArg().setValue("-i");
45             createArg().setValue(sourcepath);
46         }
47
48         // lt processors
49
if (ltprocessorTypes != null && ltprocessorTypes.size() > 0) {
50             createArg().setValue("-l");
51             String JavaDoc processor = "";
52             for (ProcessorType t : ltprocessorTypes)
53                 processor += t.getType() + File.pathSeparator;
54             createArg().setValue(processor);
55         }
56
57         super.execute();
58     }
59
60     /**
61      * Sets the source path.
62      */

63     public void setSourcepath(String JavaDoc sourcepath) {
64         this.sourcepath = sourcepath;
65     }
66
67 }
68
Popular Tags