- siehe Pointcuts "executeMethods()" und "callConstructors()" in src/casino/LogAspect.aj, die dort zum Pointcut
"logPoints()" zusammengefasst werden.
- siehe before()-Anweisung in src/casino/LogAspect.aj
- siehe load()- und store()-Methode in src/casino/Konto.java
- hier wird der Konto-Inhaber als Dateiname zum Abspeichern und
Einlesen verwendet. Das klappt natürlich nur, wenn der Namen
eindeutig ist. In der Praxis führt man hierfür eine
Kontonummer ein, aber für unser Beispiel soll das reichen.
- siehe Pointcut "handleExceptions()" und die anschließende
before()-Anweisung in src/casino/LogAspect.aj
- siehe src/casino/LogAspect.aj:
before() : call(public * *..*(..)) &&
(withincode(public void Konto.store())
|| withincode(public void Konto.load())) {
log.debug("store/load: " + thisJoinPoint.toShortString());
}
- siehe src/casino/LogAspect.aj:
after(int x) : set(private int Konto.kontostand) && args(x) {
log.info("Kontostand aendert sich zu " + x);
}
- siehe src/casino/Roulette.java und test/casino/RouletteTest.java