peterreilly 2003/09/17 07:13:54
Modified: src/main/org/apache/tools/ant Target.java
src/main/org/apache/tools/ant/helper ProjectHelper2.java
Log:
change implementation of handling importing files top-level tasks
to be less hachy
Revision Changes Path
1.45 +3 -29 ant/src/main/org/apache/tools/ant/Target.java
Index: Target.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/Target.java,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- Target.java 4 Sep 2003 11:46:03 -0000 1.44
+++ Target.java 17 Sep 2003 14:13:53 -0000 1.45
@@ -80,15 +80,11 @@
private List dependencies = null;
/** Children of this target (tasks and data types). */
private List children = new ArrayList();
- /** Position in task list */
- private int taskPosition = 0;
/** Project this target belongs to. */
private Project project;
- /** Description of this target, if any. */
+
private String description = null;
- /** Imported tasks/types being added */
- private List importedTasks = null;
/** Sole constructor. */
public Target() {
@@ -171,34 +167,12 @@
}
/**
- * This method called when an import file is being processed.
- * The top-level tasks/types are placed in the importedTasks array.
- *
- */
- public void startImportedTasks() {
- importedTasks = new ArrayList();
- }
-
- /**
* Adds a task to this target.
*
* @param task The task to be added. Must not be <code>null</code>.
*/
public void addTask(Task task) {
- if (importedTasks != null) {
- importedTasks.add(task);
- } else {
- children.add(task);
- }
- }
-
- /**
- * This method called when an import file is being processed.
- * The top-level tasks/types are placed in the importedTasks array.
- *
- */
- public void endImportedTasks() {
- children.addAll(taskPosition + 1, importedTasks);
+ children.add(task);
}
/**
@@ -354,7 +328,7 @@
*/
public void execute() throws BuildException {
if (testIfCondition() && testUnlessCondition()) {
- for (taskPosition = 0;
+ for (int taskPosition = 0;
taskPosition < children.size();
++taskPosition) {
Object o = children.get(taskPosition);
1.33 +10 -3
ant/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
Index: ProjectHelper2.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/helper/ProjectHelper2.java,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- ProjectHelper2.java 12 Sep 2003 20:56:46 -0000 1.32
+++ ProjectHelper2.java 17 Sep 2003 14:13:53 -0000 1.33
@@ -154,9 +154,16 @@
if (getImportStack().size() > 1) {
// we are in an imported file.
context.setIgnoreProjectTag(true);
- context.getCurrentTarget().startImportedTasks();
- parse(project, source, new RootHandler(context, mainHandler));
- context.getCurrentTarget().endImportedTasks();
+ Target currentTarget = context.getCurrentTarget();
+ try {
+ Target newCurrent = new Target();
+ newCurrent.setName("");
+ context.setCurrentTarget(newCurrent);
+ parse(project, source, new RootHandler(context,
mainHandler));
+ newCurrent.execute();
+ } finally {
+ context.setCurrentTarget(currentTarget);
+ }
} else {
// top level file
parse(project, source, new RootHandler(context, mainHandler));
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]