Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Capture one annotated parameter amongst many

Hello there,

I've got a little problem, I haven't been able to solve.

What I'd like to have:
Advise executions of methods, which have at least one parameter with a
specific annotation (say @NN).

  public void arbitrary (Object param1, Object param2, @NN String param3,
Object Param4, ...)

(Consider param3 is a String and point1() will apply)

	public pointcut point1() : execution(* *.* (..,String,..));
	
	public pointcut point2() : execution(* *(..,@NN (String),*,*));
	
	public pointcut point3() : execution(* *(*,*,@NN (String),*,*));
	
	public pointcut point4() : execution(* *(Object,Object,@NN
(String),Object,Object));

Now the interesting part here is the pointcut "point1()", which applies to
"arbitrary(...)".
Even point2() applies.

However the following does not:

       public pointcut point5 () :execution(* *(..,@NN (String),..));

Do I make a mistake by assuming this should work, or do I misunderstand
something ?

---------

If this can be solved, and you are not tired of one more question:

Would there be any way to additionally expose such a parameter ? (
args(..,param,..) is not allowed )


Thank you for reading (and considering to answer :) )
-- 
View this message in context: http://www.nabble.com/Capture-one-annotated-parameter-amongst-many-tp26021577p26021577.html
Sent from the AspectJ - users mailing list archive at Nabble.com.



Back to the top