On Monday 19 May 2003 10:01, Jose Alberto Fernandez wrote:
> > From: peter reilly [mailto:[EMAIL PROTECTED]
> >
> > On Saturday 17 May 2003 19:59, Costin Manolache wrote:
> > > I think <taskdef> should be treated as a special <typedef>
> >
> > with TaskAdapter
> >
> > > as adapter.
> > >
> > > ( i.e. use <typedef> as the main definition mechanism, and
> >
> > taskdef as
> >
> > > a shortcut for types with optional TaskAdapter adapters ).
> >
> > This is exacty what "taskdef" is in the patch :-). It derives
> > from typedef and sets the adapterClass to TaskAdapter, and
> > the adaptoClass
> > to Task. The html page for taskdef in the friday patch makes
> > this explicit.
> >
> > I have some WorkInProgress code to allow this to be specified
> > in a buildfile.
> >
> > <extendtype name="taskdef">
> > <typedef adapter="org.apache.tools.ant.TaskAdapter"
> > adaptto="org.apache.tools.ant.Task"/>
> > </extendtype>
> >
> > "extendtype" is a WIP name for a cut-down templating feature, it
> > defines new types from other types with some attributes pre set.
>
> Well I am glad, you guys are rediscovering "role" definitions
> one feature at the time. :-)
Yes... the extendtype idea does come from your antlib proposal.
I have WIP code that adds roles into my patch.
They are used like:
<typedef name="or" role="org.apache.tools.ant.taskdefs.condition.Condition"
classname="org.apache.tools.ant.taskdefs.condition.Or"/>
This definition of "or" can only be used where "o.a.t.a.t.condition.Condition"
is expected. - either in a add[Configured](o.a.t.a.t.condition.Condition)
method, or in a add[Configured]Nested(o.a.t.a.t.condition.Condition) with
the polymorhic <nested poly:type="or"/> build script.
<extendtype/> may be used to emulate the "role" element in the antlib
proposal:
<extendtype name="conditiondef">
<typedef role="org.apache.tools.ant.taskdefs.condition.Condition"/>
</extendtype>
<conditiondef name="or" classname="o.a.t.a.taskdefs.condition.Or"/>
Peter