Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Capture args with withincode and call

You cannot do this with withincode because withincode is a pure
lexical pointcut. It defines a region of code, no event, and a region
of code can expose no arguments. But you can use cflow(call(*
C.method1(A, B)) && args (c,d)). Note that the args is *within* the
brackets of the cflow pointcut.

Eric

On 2/13/07, bora.erbas <bora.erbas@xxxxxxxxx> wrote:

I felt like I should add some more details.
This is the problem I need to solve:
In a specific (private static) method call of a class (e.g. X.m1) I need to
list all the calls which has a target class of some type (e.g. Y).
But at the same time I need to capture the arguments to X.m1(arg1, arg2) as
well. But when capturing the arguments for the X.m1 the captured calls to
class Y are also confined to the calls with the same type/order of the
arguments of X.m1. So I want to list all calls to the methods of class Y
with any arguments. Is this possible using AspectJ constructs?

pointcut withinPrivateBaseMethod(ArgClass a, ArgClass b) :
   withincode(private static Z X.m1(ArgClass, ArgClass)) &&
   args(a, b);

pointcut allCallsToYFromPrivateBaseMethod(ArgClass a, ArgClass b) :
   withinPrivateBaseMethod(a, b) &&
   call(* Y.*(..));


So this has the problem I mentioned above.
Any ideas?
Cheers.
--
View this message in context: http://www.nabble.com/Capture-args-with-withincode-and-call-tf3220219.html#a8943569
Sent from the AspectJ - users mailing list archive at Nabble.com.

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



--
Eric Bodden
Sable Research Group
McGill University, Montréal, Canada


Back to the top