Luntain,
 
I am not sure what you mean by "most important reason", but what Wes points out 
is the REASON.  And it is a slight bit inflammatory if you ask me.
 
now onto the question, the args designation allows you to limit your join 
points in such a way that only those points that have the specific args are 
matched which is a compile or Load Time check.  If you do not specify args but 
generic method parms, you then incur a Runtime check inside your advice every 
time it is executed.
 
Ron

________________________________

From: [EMAIL PROTECTED] on behalf of Kamil Dworakowski
Sent: Sun 9/3/2006 5:41 AM
To: [EMAIL PROTECTED]; [email protected]
Subject: Re: [aspectj-users] what for args pointcut designator?



When I read your response I have an impression that you have not read
the message. You respond to the question in the topic. Why would I write
the body if not for you to read it? The body clarifies the meaning of
the question in the topic.

In the message I asked for the most important reason for having args in
the language. I mentioned that I don't view the type bounding as an
important reason. I expect something more.

Luntain

Wes wrote:
> this(), args(), and target() allow you to bind variables in a type-safe way 
> and to do runtime tests.
>
> E.g., for
>
>     void put(Object key, Object value)
>
> you might want to pick out only join points with keys of type foo:
>
>     execution(void put(Object, Object)) && args(Foo, Object)
>
> If you were to do something with it (e.g., put Foo in a wrapper with a better 
> hashcode), then you'd want to bind the variable.  Without binding (i.e., 
> using reflection) you only get Object, which makes for a lot of runtime 
> ClassCastException.
>
> Wes
>
>  
>> What is the most important reason for having args pointcut designator
>> in
>> aspectj language? I would prefer exposing args in signature like this
>>
>> aPointcut(int i): execution( * *.method( int i ) );
>>
>> The one thing that comes to my mind is
>>
>> execution( * *.meth( Object) ) && args( String )
>>
>> That is, however, not an everyday use and can be achieved by type
>> checking in the advice body.
>>
>> The reason I go through it is because I want to implement aspectj like
>> aop. I mean a reasonable subset. I wonder if I could just forget about
>> args.
>>
>> Luntain
>> _______________________________________________
>> aspectj-users mailing list
>> [email protected]
>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>>
>>    
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>  

_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users


_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to