diff options
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"); + } } } |