summaryrefslogtreecommitdiffstats
path: root/docs/teaching/exercises/answers/Answer2f.java
diff options
context:
space:
mode:
Diffstat (limited to 'docs/teaching/exercises/answers/Answer2f.java')
-rw-r--r--docs/teaching/exercises/answers/Answer2f.java18
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");
+ }
}
}