mirror of
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-09-13 15:45:38 +02:00
43 lines
1.1 KiB
Java
43 lines
1.1 KiB
Java
|
import org.aspectj.testing.Tester;
|
||
|
|
||
|
public class AroundCalls {
|
||
|
public static void main(String[] args) { test(); }
|
||
|
|
||
|
public static void test() {
|
||
|
//Tester.checkEqual(new C().m(), "abc:2", "many arounds");
|
||
|
Tester.checkEqual(new C().m(), "acb:2", "many arounds");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class C {
|
||
|
public String m() {
|
||
|
return new D().m1("a", 0);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class D {
|
||
|
public String m1(String s, int x) { return s + ":" + x; }
|
||
|
}
|
||
|
|
||
|
aspect A {
|
||
|
String around(D d, String as, int ax):
|
||
|
call(String D.m1(String,int)) &&
|
||
|
args(as,ax) &&
|
||
|
target(d)
|
||
|
//receptions(String d.m1(as, ax))
|
||
|
|
||
|
{
|
||
|
//System.out.println(as + " : " + d + " : " + ax);
|
||
|
return proceed(d, as + "c", ax + 1);
|
||
|
}
|
||
|
|
||
|
String around(String as/*, C c1*/, D d1, int ax):
|
||
|
within(C) &&
|
||
|
target(d1) && call(String m1(String,int)) && args(as,ax)
|
||
|
//instanceof(c1) && callsto(instanceof(d1) && receptions(String m1(as, ax)))
|
||
|
{
|
||
|
//System.out.println(as + " : " + c1 + " : " + d1 + " : " + ax);
|
||
|
return proceed(as + "b", /*c1,*/ d1, ax + 1);
|
||
|
}
|
||
|
}
|