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]

Reply via email to