I've never used macrodef in Ant, but would say that I'd find a
"template" definition easiest to understand with the following
structure:
<define id="t">
<parameters>
<parameter id="x">
... (gives default value)
</parameter>
</parameters>
<body>
...
</body>
</define>
and usage of the form:
<apply refid="t">
<binding id="x"> (maps to a parameter)
... (gives actual value)
</binding>
</apply>
or something like that.
You might even want to indicate that a given "parameter" is mandatory by
not specifying a default for the parameter.
How does that relate to macrodef? Can this approach be used? Is it worth
it? Just my tuppence worth. ;n)
Phil
On Fri, 2004-12-10 at 15:58, Dominique Devienne wrote:
> Thanks for the feedback Peter. I'll be off line most of Dec, so for now I'll
> just attach my modified MacroDef/Instance files in bugzilla until I can
> properly try to integrate it to Ant (it's not very tested yet, and not unit
> tested at all either). I worked off the 1.6 branch anyway, and this would
> need to happen in the HEAD I guess, no?
>
> About (1), you're right. I used my <bm:sequential> which is more like
> <xsl:if> than <ac:if>, because it has no <then> or <else> block. 90% of the
> time, I don't need if/then/else, just if. I find having conditions on
> <sequential> very natural and the Ant way ;-)
>
> (2) I initialy thought about putting it in the declaration, but I didn't
> think I could pull it off. And after using it, I thought it was easier to
> read the macro code with the defaults inside the macro impl instead of in the
> element declaration.
>
> (3) I agree it requires to get used to, but for the client code actually
> looks more 'normal' and task-like. Like (4), one doesn't have to use it.
>
> (4) Again, it's a question of reuse. I don't deny using @{attr} in the macro
> instance looks strange, but I did naturally try to use it with the regular
> Ant <macrodef> to learn it didn't work. I wanted to avoid duplicate some info
> I had already entered in a macro attribute. I'd say it's a nice to have
> thing, and one doesn't have to use it.
>
> BTW, after droping this code in my Antlib, my checkstyle Javadocs error count
> jumped from 0 to 35 ;-) I'll try to fix this too. (I have a checkstyle config
> for Javadocs only). --DD
>
> ________________________________
>
> From: Peter Reilly [mailto:[EMAIL PROTECTED]
> Sent: Fri 12/10/2004 9:15 AM
> To: Ant Developers List
> Subject: Re: About <macrodef> in the trenches
>
>
>
> All these features sould great.
>
> 1) this attribute is good.
> however, it is only really usefull in combination with the iftrue
> attribute,
> or with ant-contrib "if" task
>
> 2) a default value for the element is good. The default value should
> be in the declaration, but it is ok to have it the body of the
> macrodef.
>
> 3) this sounds good if a little stange initially.
>
> 4) this is good as well, if one is useing elements with macrodefs a lot.
> It may
> be a bit confusing.
>
> I would say go for it!
>
> Peter
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
--
Phil Weighill-Smith <[EMAIL PROTECTED]>
Volantis Systems