summaryrefslogtreecommitdiffstats
path: root/docs/teaching/exercises/answers/Answer2e.java
diff options
context:
space:
mode:
authorehilsdal <ehilsdal>2003-08-28 15:11:12 +0000
committerehilsdal <ehilsdal>2003-08-28 15:11:12 +0000
commitf3929cad6a0e6d6973483dd23c7aea68b6e7fed1 (patch)
tree7caf9b0ac3e5a52c0341dfc8b9061be49287b599 /docs/teaching/exercises/answers/Answer2e.java
parentf1a7345a62bd1f227dd64fcd7c2d519c8911ae5c (diff)
downloadaspectj-f3929cad6a0e6d6973483dd23c7aea68b6e7fed1.tar.gz
aspectj-f3929cad6a0e6d6973483dd23c7aea68b6e7fed1.zip
updated section 2
Diffstat (limited to 'docs/teaching/exercises/answers/Answer2e.java')
-rw-r--r--docs/teaching/exercises/answers/Answer2e.java20
1 files changed, 15 insertions, 5 deletions
diff --git a/docs/teaching/exercises/answers/Answer2e.java b/docs/teaching/exercises/answers/Answer2e.java
index 53245b4d0..43112ec89 100644
--- a/docs/teaching/exercises/answers/Answer2e.java
+++ b/docs/teaching/exercises/answers/Answer2e.java
@@ -14,11 +14,21 @@ package answers;
import figures.*;
-public aspect Answer2e {
- pointcut checkpoint(Box box):
- call(void move(int, int)) && target(box);
+import java.awt.Rectangle;
- after(Box box) returning: checkpoint(box) {
- box.checkBoxness();
+aspect Answer2e {
+ void around(Point p, int dx, int dy):
+ target(fe) && call(void move(int, int)) && args(dx, dy) {
+ int preX = p.getX();
+ int preY = p.getY();
+
+ proceed(p, dx, dy);
+
+ int postX = p.getX();
+ int postY = p.getY();
+
+ if ((postX != preX + dx) || (postY != preY + dy)) {
+ throw new IllegalStateException("point didn't move properly");
+ }
}
}