costin      2003/05/04 19:17:28

  Modified:    src/main/org/apache/tools/ant ComponentHelper.java
  Log:
  Remove one method - it wasn't used, and it seems it's not powerfull enough for
  all cases discussed. The method that takes UnknownElement, ns, tag should
  be able to cover everything ( by having access to UE you get access to parent
  and all the tree - so any kind of policy can be implemented )
  
  Of course - nothing calls this method yet. Switching UnknwonElement and the
  normal component creation is easy - but there are many pieces of code that
  call the old method.
  
  Revision  Changes    Path
  1.8       +24 -26    ant/src/main/org/apache/tools/ant/ComponentHelper.java
  
  Index: ComponentHelper.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/ComponentHelper.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ComponentHelper.java      3 May 2003 06:27:00 -0000       1.7
  +++ ComponentHelper.java      5 May 2003 02:17:28 -0000       1.8
  @@ -124,28 +124,16 @@
           taskClassDefinitions= new AntTaskTable(project, true);
       }
   
  -
  -    /** Creates an ant component..
  -     *
  -     * A factory may have knowledge about the tasks it creates. It can return
  -     * an object extending TaskAdapter that emulates Task/DataType. If null 
is returned,
  -     * the next helper is tried.
  -     *
  -     * @param ns namespace if a SAX2 parser is used, null for 'classical' ant
  -     * @param taskName the (local) name of the task.
  -     */
  -    public Object createComponent( String ns,
  -                                   String taskName )
  -            throws BuildException
  -    {
  -        if( getNext() != null ) {
  -            return getNext().createComponent( ns, taskName);
  -        }
  -        return null;
  -        // XXX class loader ? Can use the ns, but additional hints may be 
available in taskdef
  -        //
  -    }
  -
  +    /** Factory method to create the components.
  +     * 
  +     * This should be called by UnknownElement.
  +     * 
  +     * @param ue The component helper has access via ue to the entire XML 
tree.
  +     * @param ns Namespace. Also available as ue.getNamespace()
  +     * @param taskName The element name. Also available as ue.getTag()
  +     * @return
  +     * @throws BuildException
  +     */ 
       public Object createComponent( UnknownElement ue,
                                      String ns,
                                      String taskName )
  @@ -162,17 +150,23 @@
               // This is the original policy in ProjectHelper. The 1.5 version 
of UnkwnonwElement
               // used to try first to create a task, and if it failed tried a 
type. In 1.6 the diff
               // should disapear.
  -            component = project.createDataType(taskName);
  +            component = this.createDataType(taskName);
               if( component!=null ) return component;
           }
   
           // from UnkwnonwElement.createTask. The 'top level' case is removed, 
we're
           // allways lazy
  -        component = project.createTask(taskName);
  +        component = this.createTask(taskName);
   
           return component;
       }
   
  +    /** Initialization code - implementing the original ant component
  +     * loading from /org/apache/tools/ant/taskdefs/default.properties 
  +     * and .../types/default.properties
  +     * 
  +     * @throws BuildException
  +     */ 
       public void initDefaultDefinitions() throws BuildException {
           String defs = "/org/apache/tools/ant/taskdefs/defaults.properties";
   
  @@ -229,8 +223,8 @@
        *                           this exception is thrown.
        *
        * @see #checkTaskClass(Class)
  -     -         */
  -    public void addTaskDefinition(String taskName, Class taskClass)
  +     */
  +    public void addTaskDefinition(String taskName, Class taskClass)   
               throws BuildException {
           Class old = (Class) taskClassDefinitions.get(taskName);
           if (null != old) {
  @@ -368,6 +362,10 @@
        * Creates a new instance of a task, adding it to a list of
        * created tasks for later invalidation. This causes all tasks
        * to be remembered until the containing project is removed
  +     *
  +     *  Called from Project.createTask(), which can be called by tasks.
  +     *  The method should be deprecated, as it doesn't support ns and libs.
  +     *
        * @param taskType The name of the task to create an instance of.
        *                 Must not be <code>null</code>.
        *
  
  
  

Reply via email to