réplica de
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-08-27 05:54:38 +02:00
37 líneas
880 B
Java
37 líneas
880 B
Java
import org.aspectj.testing.Tester;
|
|
|
|
public class PointcutQualification {
|
|
public static void main(String[] args) {
|
|
Tester.expectEvent("before pc_reference");
|
|
new TargetClass().doit();
|
|
Tester.checkAllEvents();
|
|
}
|
|
}
|
|
|
|
class I {
|
|
public static final void got(String s) {
|
|
Tester.event(s);
|
|
}
|
|
}
|
|
|
|
class TargetClass{ void doit(){}}
|
|
|
|
aspect DebugAspect { // incorrect compiler error here
|
|
before() : Aspect.pc_reference() { I.got("before pc_reference");}
|
|
}
|
|
|
|
aspect Aspect {
|
|
|
|
pointcut pc_notfound()
|
|
: execution(void TargetClass.doit()) ;
|
|
|
|
pointcut someCallCflow()
|
|
: !within(Aspect) && !within(DebugAspect) && !within(I)
|
|
//&& cflow(Aspect.pc_notfound()) ; // workaround
|
|
&& cflow(pc_notfound()) ; // bug: unqualified reference in DebugAspect context
|
|
|
|
pointcut pc_reference() : someCallCflow();
|
|
}
|
|
|
|
|