You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@apache.org on 2001/11/02 11:25:20 UTC

cvs commit: jakarta-ant/src/main/org/apache/tools/ant ProjectHelper.java

bodewig     01/11/02 02:25:20

  Modified:    src/main/org/apache/tools/ant ProjectHelper.java
  Log:
  Make sure tasks inside TaskContainers get their attribute setters
  called, even if the parent TaskContainer doesn't take care of it
  itself.
  
  Submitted by:	Ovidiu Predescu <ov...@cup.hp.com>
  
  Revision  Changes    Path
  1.65      +10 -6     jakarta-ant/src/main/org/apache/tools/ant/ProjectHelper.java
  
  Index: ProjectHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/ProjectHelper.java,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- ProjectHelper.java	2001/10/31 11:04:59	1.64
  +++ ProjectHelper.java	2001/11/02 10:25:20	1.65
  @@ -362,11 +362,11 @@
           }
   
           private void handleTaskdef(String name, AttributeList attrs) throws SAXParseException {
  -            (new TaskHandler(this, null, null)).init(name, attrs);
  +            (new TaskHandler(this, null, null, null)).init(name, attrs);
           }
   
           private void handleProperty(String name, AttributeList attrs) throws SAXParseException {
  -            (new TaskHandler(this, null, null)).init(name, attrs);
  +            (new TaskHandler(this, null, null, null)).init(name, attrs);
           }
   
           private void handleTarget(String tag, AttributeList attrs) throws SAXParseException {
  @@ -443,7 +443,7 @@
               if (project.getDataTypeDefinitions().get(name) != null) {
                   new DataTypeHandler(this, target).init(name, attrs);
               } else {
  -                new TaskHandler(this, target, target).init(name, attrs);
  +                new TaskHandler(this, target, null, target).init(name, attrs);
               }
           }
       }
  @@ -455,11 +455,13 @@
           private Target target;
           private TaskContainer container;
           private Task task;
  +        private RuntimeConfigurable parentWrapper;
           private RuntimeConfigurable wrapper = null;
   
  -        public TaskHandler(DocumentHandler parentHandler, TaskContainer container, Target target) {
  +        public TaskHandler(DocumentHandler parentHandler, TaskContainer container, RuntimeConfigurable parentWrapper, Target target) {
               super(parentHandler);
               this.container = container;
  +            this.parentWrapper = parentWrapper;
               this.target = target;
           }
   
  @@ -488,6 +490,8 @@
                   task.init();
                   wrapper = task.getRuntimeConfigurableWrapper();
                   wrapper.setAttributes(attrs);
  +                if (parentWrapper != null)
  +                  parentWrapper.addChild(wrapper);
               } else {
                   task.init();
                   configure(task, attrs, project);
  @@ -515,7 +519,7 @@
           public void startElement(String name, AttributeList attrs) throws SAXParseException {
               if (task instanceof TaskContainer) {
                   // task can contain other tasks - no other nested elements possible
  -                new TaskHandler(this, (TaskContainer)task, target).init(name, attrs);
  +                new TaskHandler(this, (TaskContainer)task, wrapper, target).init(name, attrs);
               }
               else {
                   new NestedElementHandler(this, task, wrapper, target).init(name, attrs);
  @@ -593,7 +597,7 @@
               if (child instanceof TaskContainer) {
                   // taskcontainer nested element can contain other tasks - no other 
                   // nested elements possible
  -                new TaskHandler(this, (TaskContainer)child, target).init(name, attrs);
  +                new TaskHandler(this, (TaskContainer)child, childWrapper, target).init(name, attrs);
               }
               else {
                   new NestedElementHandler(this, child, childWrapper, target).init(name, attrs);
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>