mirror of
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-08-14 02:10:40 +02:00
86 lines
3.1 KiB
Java
86 lines
3.1 KiB
Java
import org.aspectj.testing.Tester;
|
|
public class NonstaticInnerClassesInAspects {
|
|
public static void main(String[] args) {
|
|
new NonstaticInnerClassesInAspects().realMain(args);
|
|
}
|
|
public void realMain(String[] args) {
|
|
new C().c();
|
|
Tester.checkAllEvents();
|
|
}
|
|
static {
|
|
Tester.expectEvent("A$Inner-before-c");
|
|
Tester.expectEvent("A$Inner$InnerInner-before-c");
|
|
Tester.expectEvent("A$Inner$InnerInner$InnerInnerInner-before-c");
|
|
Tester.expectEvent("A$Inner-after-c");
|
|
Tester.expectEvent("A$Inner$InnerInner-after-c");
|
|
Tester.expectEvent("A$Inner$InnerInner$InnerInnerInner-after-c");
|
|
Tester.expectEvent("A$Inner-around-c");
|
|
Tester.expectEvent("A$Inner$InnerInner-around-c");
|
|
Tester.expectEvent("A$Inner$InnerInner$InnerInnerInner-around-c");
|
|
Tester.expectEvent("A$Inner-before-d");
|
|
Tester.expectEvent("A$Inner$InnerInner-before-d");
|
|
Tester.expectEvent("A$Inner$InnerInner$InnerInnerInner-before-d");
|
|
Tester.expectEvent("A$Inner-after-d");
|
|
Tester.expectEvent("A$Inner$InnerInner-after-d");
|
|
Tester.expectEvent("A$Inner$InnerInner$InnerInnerInner-after-d");
|
|
Tester.expectEvent("A$Inner-around-d");
|
|
Tester.expectEvent("A$Inner$InnerInner-around-d");
|
|
Tester.expectEvent("A$Inner$InnerInner$InnerInnerInner-around-d");
|
|
Tester.expectEvent("A$Inner-before-x");
|
|
Tester.expectEvent("A$Inner$InnerInner-before-x");
|
|
Tester.expectEvent("A$Inner$InnerInner$InnerInnerInner-before-x");
|
|
Tester.expectEvent("A$Inner-after-x");
|
|
Tester.expectEvent("A$Inner$InnerInner-after-x");
|
|
Tester.expectEvent("A$Inner$InnerInner$InnerInnerInner-after-x");
|
|
Tester.expectEvent("A$Inner-around-x");
|
|
Tester.expectEvent("A$Inner$InnerInner-around-x");
|
|
Tester.expectEvent("A$Inner$InnerInner$InnerInnerInner-around-x");
|
|
}
|
|
}
|
|
|
|
class C {
|
|
public void c() { d(); }
|
|
public void d() { }
|
|
}
|
|
|
|
aspect A {
|
|
|
|
pointcut c(): target(C) && call(void c());
|
|
pointcut d(): call(void C.d());
|
|
pointcut x(): target(C) && execution(void c());
|
|
|
|
after() : c() { new Inner().i("after-c"); }
|
|
after() : d() { new Inner().i("after-d"); }
|
|
after() : x() { new Inner().i("after-x"); }
|
|
|
|
before() : c() { new Inner().i("before-c"); }
|
|
before() : d() { new Inner().i("before-d"); }
|
|
before() : x() { new Inner().i("before-x"); }
|
|
|
|
void around(): c() { new Inner().i("around-c"); proceed(); }
|
|
void around(): d() { new Inner().i("around-d"); proceed(); }
|
|
void around(): x() { new Inner().i("around-x"); proceed(); }
|
|
|
|
class Inner {
|
|
void i(String s) {
|
|
a(s,this);
|
|
new InnerInner().i(s);
|
|
}
|
|
class InnerInner {
|
|
void i(String s) {
|
|
a(s,this);
|
|
new InnerInnerInner().i(s);
|
|
}
|
|
class InnerInnerInner {
|
|
void i(String s) {
|
|
a(s,this);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void a(String s, Object o) {
|
|
Tester.event(o.getClass().getName() + "-" + s);
|
|
}
|
|
}
|