Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Newbie question: how to get caller method name

Title: Newbie question: how to get caller method name

Hi,

I have two java files A.java and B.java, there is a call from A:methodA to B:methodB.
Throught reflection, I can get the names of A, B and methodB.

Please see the source code below. I run them this way.
C> ajc *.java
C> java A


But how can I get the method name of caller in aspect code? In this case, it is methodA.

Thanks,

Larry

------------------------ A.java -------------------------------
public class A {

    void methodA()
    {
        B b = new B();
        b.methodB();
    }

    public static void main(String[] args)
    {
        A a = new A();
        a.methodA();
    }
}
-------------------------B.java ------------------------------
public class B {
    void methodB()
    {
        System.out.println("B:methodB");

    }
}
----------------------- MyAspect.java ---------------------------------
public aspect MyAspect {

    pointcut invokeB() : call(void *.methodB());

    before() : invokeB()
    {
        if ( thisJoinPoint.getThis() != null) {
            System.out.println("getThis()=" + thisJoinPoint.getThis());
        }
        if ( thisJoinPoint.getTarget() != null) {
            System.out.println("getTarget()=" + thisJoinPoint.getTarget());
        }
        System.out.println("toLongString()=" + thisJoinPoint.toLongString());
    }
}


Back to the top