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/Answer2f.java | |
parent | f1a7345a62bd1f227dd64fcd7c2d519c8911ae5c (diff) | |
download | aspectj-f3929cad6a0e6d6973483dd23c7aea68b6e7fed1.tar.gz aspectj-f3929cad6a0e6d6973483dd23c7aea68b6e7fed1.zip |
updated section 2
Diffstat (limited to 'docs/teaching/exercises/answers/Answer2f.java')
-rw-r--r-- | docs/teaching/exercises/answers/Answer2f.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/docs/teaching/exercises/answers/Answer2f.java b/docs/teaching/exercises/answers/Answer2f.java index 5e78dabfc..4431b2742 100644 --- a/docs/teaching/exercises/answers/Answer2f.java +++ b/docs/teaching/exercises/answers/Answer2f.java @@ -14,11 +14,19 @@ package answers; import figures.*; -public aspect Answer2f { - pointcut checkpoint(Box box): - target(box) && call(public * *(..)) && !within(Answer*); +import java.awt.Rectangle; - after(Box box) returning: checkpoint(box) { - box.checkBoxness(); +aspect Answer2f { + void around(FigureElement fe, int dx, int dy): + target(fe) && call(void move(int, int)) && args(dx, dy) { + + Rectangle preBounds = new Rectangle(fe.getBounds()); + proceed(fe, dx, dy); + + preBounds.translate(dx, dy); + + if (!preBounds.equals(fe.getBounds())) { + throw new IllegalStateException("bounds don't match move"); + } } } |