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

49 lines
1.1 KiB
Java

import org.aspectj.testing.*;
public class HasAspect {
static boolean p = false;
public static void main(String[] args) {
HasAspect c = new HasAspect();
c.someMethod();
Tester.check(p, "p advice was not run");
Tester.check(A.aspectOf(c).advised, "hasaspect(A)");
Tester.check(B.aspectOf().advised, "hasaspect(B)");
Tester.check(C.aspectOf().advised, "hasaspect(C)");
}
public void someMethod() {}
}
aspect A pertarget(target(HasAspect)) {
boolean advised = false;
pointcut p(): call(void someMethod()) && hasaspect(A);
//pointcut p(): receptions(void someMethod()) && instanceof(HasAspect);
before() : p() {
HasAspect.p = true;
}
}
aspect B issingleton() {
boolean advised = false;
}
aspect C percflow(entries()) {
pointcut entries(): executions(void HasAspect.main(String[]));
boolean advised = false;
}
aspect TestAspect {
before(A a, B b, C c) : call(void someMethod())
&& hasaspect(a) && hasaspect(b) && hasaspect(c)
{
a.advised = true;
b.advised = true;
c.advised = true;
}
}