org.aspectj/tests/new/AroundAdviceOnMethodsCalledInAroundAdvice.java
2002-12-16 18:51:06 +00:00

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");
}
}