ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Inger, Matthew" <In...@Synygy.com>
Subject RE: Target or macrodef?
Date Mon, 23 Aug 2004 18:08:06 GMT
Perhaps that could be a future requirement, to allow for the user
to choose which behavior he/she wants.

It would be nice if project had a notion of a stackable variable scope:

public class VariableScope {
  // add fields and accessors for properties, refs, taskdefs, etc...
}

public class StackedVariableScope {
    private VariableScope current;
    private Stack stack;

    public void push(boolean inheritAll, boolean inheritRefs) {
        stack.push(current);
        VariableScope scope = new VariableScope();
        if (inheritAll) {
           // copy from current to scope
        }
        if (inheritRefs) {
           // copy from current to scope
        }

        current = scope;
    }

    public void pop() {
        current = (VariableScope)stack.pop();
    }
}

Not only would this allow macros to make the decision
i mentioned above (by being able to push before macro exec,
and pop afterwards), but would also probably simplify, and
speed up the execution of <antcall>, as it wouldn't need to
create a completely new copy of the project.

Perhaps a refactoring for Ant 1.7?

-----Original Message-----
From: Jeffrey Bacon [mailto:jbacon@magmic.com]
Sent: Monday, August 23, 2004 2:02 PM
To: Ant Users List
Subject: Re: Target or macrodef?


> can be much more time consuming.  Keep in mind however (and someone
> correct me if i'm wrong), that any properties you set in a macro will
> also get set for the calling target, which can be problematic.

or advantageous... =)

--
Jeffrey Bacon
jbacon@magmic.com
Creative Developer
http://www.magmic.com


> 
> 
> -----Original Message-----
> From: Dick, Brian E. [mailto:Brian.Dick@FMR.com]
> Sent: Monday, August 23, 2004 1:57 PM
> To: Ant Users List
> Subject: Target or macrodef?
> 
> 
> I have a piece of code that I need to call repeatedly. The code has
> three simple arguments. I can write the code as a target or as a
> macrodef. What should I consider when choosing between these two
> implementations?
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message