1 2 3 4 5 6 7 8 9 10 11 12 13
public abstract aspect AbstractAspect{ public abstract pointcut directCall(); before(): directCall(){ noteDirectCall(); } abstract void noteDirectCall(); public abstract pointcut badCall(); declare warning: badCall(): "bad"; }