Holy cow, how could I miss that one?
Thanks Andy. Oops, you did it again! ;-)
-- 
Alexander Kriegisch
http://scrum-master.de


Andy Clement schrieb am 21.07.2014 16:52:

> How's about:
> 
> pointcut addEntity(Object o):
> 
>         call( * java.util.Collection+.add( * ))
>         && args(o) && @args(MyAnnotation);
> 
> 
> On 17 July 2014 01:02, Alexander Kriegisch <[email protected] 
> <mailto:[email protected]> > wrote:
>> I think this is not possible. But maybe Andy Clement knows better. It would 
>> not be the first time he surprised me. Meanwhile, check out my workaround at 
>> http://stackoverflow.com/a/24797868/1082681 
>> <http://stackoverflow.com/a/24797868/1082681> .
>> 
>> 
>> Eric B schrieb am 17.07.2014 07:12:
>> 
>> 
>> > Thanks.  What if want to advise based on an annotation rather than a type? 
>> >  I tried
>> >
>> > pointcut addEntity(@MyAnnotation * s):
>> >         call( * java.util.Collection+.add( * ))
>> >         && args(s);
>> >
>> > But got syntax error that @MyAnnotation is not allowed.
>> >
>> >
>> 
>> 
>> > On Jul 17, 2014 1:05 AM, "Ulises Juárez Martínez" <[email protected] 
>> > <mailto:[email protected]>  <mailto:[email protected] 
>> > <mailto:[email protected]> > > wrote:
>> >> add() signature is:
>> >>
>> >> add(E e)
>> >>
>> >> Thus, * matches anything, but java.lang.String is not E.
>> >>
>> >> Change your pointcut to:
>> >>
>> >>     pointcut addEntity(String s):
>> >>         call( * java.util.Collection+.add( * ))
>> >>         && args(s);
>> >>
>> >>
>> >>
>> 
>> 
>> >> On Wed, Jul 16, 2014 at 10:31 PM, Eric B <[email protected] 
>> >> <mailto:[email protected]>  <mailto:[email protected] 
>> >> <mailto:[email protected]> > > wrote:
>> >> > I'm trying to write a pointcut against a Collection.add() method given a
>> >> > specific type of argument, but everytime I specify the argument type the
>> >> > pointcut fails to advise.
>> >> >
>> >> > Given the following code:
>> >> > List<String> x = new ArrayList<String>();
>> >> > x.add("Some String)";
>> >> >
>> >> > This works:
>> >> >
>> >> > pointcut addEntity():  call( * java.util.Collection+.add( * ));
>> >> >
>> >> > However, this does not:
>> >> >
>> >> > pointcut addEntity():  call( * java.util.Collection+.add( 
>> >> > java.util.String
>> >> > ));
>> >> >
>> >> >
>> >> > Is there a specific reason why I cannot specify the type of argument I 
>> >> > want
>> >> > to advise against?

_______________________________________________
aspectj-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to