conor       2003/04/01 06:59:58

  Modified:    src/main/org/apache/tools/ant IntrospectionHelper.java
                        UnknownElement.java
               src/main/org/apache/tools/ant/helper ProjectHelper2.java
  Log:
  Change reporting of problems creating elements within Task containers to
  say that the container does not support the given nested element.
  
  Revision  Changes    Path
  1.50      +8 -3      
ant/src/main/org/apache/tools/ant/IntrospectionHelper.java
  
  Index: IntrospectionHelper.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/IntrospectionHelper.java,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -w -u -r1.49 -r1.50
  --- IntrospectionHelper.java  7 Mar 2003 11:22:59 -0000       1.49
  +++ IntrospectionHelper.java  1 Apr 2003 14:59:58 -0000       1.50
  @@ -503,6 +503,13 @@
           }
       }
   
  +    public void throwNotSupported(Project project, Object parent, 
  +        String elementName) {
  +        String msg = project.getElementName(parent) +
  +            " doesn't support the nested \"" + elementName + "\" element.";
  +        throw new BuildException(msg);
  +    }        
  +    
       /**
        * Creates a named nested element. Depending on the results of the
        * initial introspection, either a method in the given parent instance
  @@ -538,9 +545,7 @@
               }
           }
           if (nc == null) {
  -            String msg = project.getElementName(parent) +
  -                " doesn't support the nested \"" + elementName + "\" 
element.";
  -            throw new BuildException(msg);
  +            throwNotSupported(project, parent, elementName);
           }
           try {
               Object nestedElement = nc.create(parent);
  
  
  
  1.42      +7 -15     ant/src/main/org/apache/tools/ant/UnknownElement.java
  
  Index: UnknownElement.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/UnknownElement.java,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -w -u -r1.41 -r1.42
  --- UnknownElement.java       7 Mar 2003 11:22:59 -0000       1.41
  +++ UnknownElement.java       1 Apr 2003 14:59:58 -0000       1.42
  @@ -271,10 +271,10 @@
   
               if (!ih.supportsNestedElement(child.getTag()) 
                   && parent instanceof TaskContainer) {
  -                realChild = makeTask(child, childWrapper, false);
  +                realChild = makeTask(child, childWrapper);
   
                   if (realChild == null) {
  -                    throw getNotFoundException("task", child.getTag());
  +                    ih.throwNotSupported(getProject(), parent, 
child.getTag());
                   }
   
                   // XXX DataTypes will be wrapped or treated like normal 
components
  @@ -286,7 +286,8 @@
                       task.setOwningTarget(this.getOwningTarget());
                       task.init();
                   } else {
  -                    // What ? Add data type ? createElement ?
  +                    // should not happen
  +                    ih.throwNotSupported(getProject(), parent, 
child.getTag());
                   }
               } else {
                   realChild 
  @@ -318,7 +319,7 @@
        * @return the task or data type represented by the given unknown 
element.
        */
       protected Object makeObject(UnknownElement ue, RuntimeConfigurable w) {
  -        Object o = makeTask(ue, w, true);
  +        Object o = makeTask(ue, w);
           if (o == null) {
               o = getProject().createDataType(ue.getTag());
           }
  @@ -334,21 +335,12 @@
        * @param ue The UnknownElement to create the real task for.
        *           Must not be <code>null</code>.
        * @param w  Ignored.
  -     * @param onTopLevel Whether or not this is definitely trying to create
  -     *                   a task. If this is <code>true</code> and the
  -     *                   task name is not recognised, a BuildException
  -     *                   is thrown.
        *
        * @return the task specified by the given unknown element, or
  -     *         <code>null</code> if the task name is not recognised and
  -     *         onTopLevel is <code>false</code>.
  +     *         <code>null</code> if the task name is not recognised.
        */
  -    protected Task makeTask(UnknownElement ue, RuntimeConfigurable w,
  -                            boolean onTopLevel) {
  +    protected Task makeTask(UnknownElement ue, RuntimeConfigurable w) {
           Task task = getProject().createTask(ue.getTag());
  -        if (task == null && !onTopLevel) {
  -            throw getNotFoundException("task", ue.getTag());
  -        }
   
           if (task != null) {
               task.setLocation(getLocation());
  
  
  
  1.16      +0 -5      
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.15
  retrieving revision 1.16
  diff -u -w -u -r1.15 -r1.16
  --- ProjectHelper2.java       10 Feb 2003 14:13:33 -0000      1.15
  +++ ProjectHelper2.java       1 Apr 2003 14:59:58 -0000       1.16
  @@ -846,11 +846,6 @@
                                          Attributes attrs,
                                          AntXMLContext context)
               throws SAXParseException {
  -            // this element
  -            RuntimeConfigurable wrapper = context.currentWrapper();
  -
  -            Object element = wrapper.getProxy();
  -//            return ProjectHelper2.nestedElementHandler;
               return ProjectHelper2.elementHandler;
           }
   
  
  
  

Reply via email to