diff options
author | ehilsdal <ehilsdal> | 2003-08-28 15:11:12 +0000 |
---|---|---|
committer | ehilsdal <ehilsdal> | 2003-08-28 15:11:12 +0000 |
commit | f3929cad6a0e6d6973483dd23c7aea68b6e7fed1 (patch) | |
tree | 7caf9b0ac3e5a52c0341dfc8b9061be49287b599 /docs/teaching/exercises/answers/Answer2e.java | |
parent | f1a7345a62bd1f227dd64fcd7c2d519c8911ae5c (diff) | |
download | aspectj-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.java | 20 |
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"); + } } } |