mirror of
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-08-14 02:10:40 +02:00
151 lines
5.1 KiB
Java
151 lines
5.1 KiB
Java
import org.aspectj.testing.Tester;
|
|
|
|
public class AroundAdviceOnMethodsCalledInAroundAdvice {
|
|
public static void main(String[] args) {
|
|
new AroundAdviceOnMethodsCalledInAroundAdvice().realMain(args);
|
|
}
|
|
public void realMain(String[] args) {
|
|
Expect.expect();
|
|
new C().g();
|
|
new C().f("AroundMetaJoinpoints.realMain");
|
|
new C("C.package.constructor");
|
|
new C(123);
|
|
new D().g();
|
|
new D("D.package.constructor");
|
|
new D(123);
|
|
Tester.checkAllEvents();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
aspect A {
|
|
|
|
Object around(): call(public Object f(String)) {
|
|
jp(thisJoinPoint);
|
|
return proceed();
|
|
}
|
|
|
|
private void jp (Object join) {}
|
|
|
|
void around(): call(* jp(..)) {
|
|
proceed();
|
|
}
|
|
|
|
}
|
|
|
|
class D {
|
|
Object o = new C().f("D.o");
|
|
public D() { new C().f("D.public.constructor"); }
|
|
D(String f) { new C().f(f); }
|
|
protected D(int i) { new C().f("D.protected.constructor"); }
|
|
private D(Integer i) { new C().f("D.private.constructor"); }
|
|
{ new C().f("D.init"); }
|
|
static {
|
|
new D(new Integer(123));
|
|
new C().f("D.static");
|
|
}
|
|
public void g() {
|
|
Tester.event("D.g");
|
|
new C().f("D.g");
|
|
}
|
|
}
|
|
|
|
class C {
|
|
public C() { f("C.public.constructor"); }
|
|
C(String f) { f(f); }
|
|
protected C(int i) { f("C.protected.constructor"); }
|
|
private C(Integer i) { f("C.private.constructor"); }
|
|
Object o = f("C.o");
|
|
static { new C(new Integer(123)).f("C.static"); }
|
|
{ f("C.init"); }
|
|
public void g() {
|
|
Tester.event("C.g");
|
|
f("C.g");
|
|
}
|
|
public Object f(String f) {
|
|
Tester.event("C.f-"+f);
|
|
return null;
|
|
}
|
|
}
|
|
class Expect {
|
|
static void expect() {
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.private.constructor");
|
|
Tester.expectEvent("C.f-C.static");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.g");
|
|
Tester.expectEvent("C.f-C.g");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-AroundMetaJoinpoints.realMain");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.package.constructor");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.protected.constructor");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.o");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.init");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.private.constructor");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.static");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.o");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.init");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.public.constructor");
|
|
Tester.expectEvent("D.g");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.g");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.o");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.init");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.package.constructor");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.o");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.init");
|
|
Tester.expectEvent("C.f-C.o");
|
|
Tester.expectEvent("C.f-C.init");
|
|
Tester.expectEvent("C.f-C.public.constructor");
|
|
Tester.expectEvent("C.f-D.protected.constructor");
|
|
}
|
|
}
|