Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Language IDEs » AJDT » Help: how to get calling class for static methods?
Help: how to get calling class for static methods? [message #592612] Sun, 19 March 2006 03:31
Sunfire is currently offline SunfireFriend
Messages: 71
Registered: July 2009

I am having trouble in obtaining the caller and callee's classes if a
method call is made within the caller's static method. For example:

public class A
public static void call1()

public class B {
public static void changeField()
System.out.println("from B");

How can I know the caller is class A and the callee is class B? I tried
the following pointcut:

pointcut staticMethodCall() : call(static * *.*(..));

after() : staticMethodCall()
Class calleeClass = thisJoinPoint.getSignature().getDeclaringType();

Object caller = thisJoinPoint.getThis();

if (caller == null)

caller = thisJoinPoint.getSourceLocation().getWithinType();

Here I used thisJoinPoint.getSignature().getDeclaringType() to obtain the
callee's class. But I am not sure what's the exact meaning of "Signature"
in the context of a method call. Does it always give me the type of the

For the caller, I used thisJoinPoint.getSourceLocation().getWithinType();
But what if I test a program where no source code is available? Can I
still call thisJoinPoint.getSourceLocation()?

All these seem to work for now but I am really wondering if this is a good
solution. I appreciate any advice and code snippet!

Thank you,

Previous Topic:Help: how to get calling class for static methods?
Next Topic:Cross Project reference
Goto Forum:

Current Time: Wed Nov 25 02:22:13 GMT 2015

Powered by FUDForum. Page generated in 0.01486 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software