aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs166/pr288712/answers
diff options
context:
space:
mode:
authoraclement <aclement>2009-09-08 18:46:54 +0000
committeraclement <aclement>2009-09-08 18:46:54 +0000
commit1ef6b1decae19efe6de321eec4d533538bce940b (patch)
treec934c07e030b28d713c9ae5d6e0defc9f52ba621 /tests/bugs166/pr288712/answers
parent4852b21903efb89fc27ebcb2c895a9508aa7368b (diff)
downloadaspectj-1ef6b1decae19efe6de321eec4d533538bce940b.tar.gz
aspectj-1ef6b1decae19efe6de321eec4d533538bce940b.zip
288712: anno style verifyerror
Diffstat (limited to 'tests/bugs166/pr288712/answers')
-rw-r--r--tests/bugs166/pr288712/answers/Answer2h.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/bugs166/pr288712/answers/Answer2h.java b/tests/bugs166/pr288712/answers/Answer2h.java
new file mode 100644
index 000000000..dda4766e2
--- /dev/null
+++ b/tests/bugs166/pr288712/answers/Answer2h.java
@@ -0,0 +1,41 @@
+package answers;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.*;
+import figures.*;
+import java.awt.Rectangle;
+
+@Aspect
+public class Answer2h {
+ @Pointcut("call(public void figures.FigureElement+.move" +
+ "()) && target(fe)")
+ void movingFigureElement(Point fe) {}
+
+ @Around("movingFigureElement(fe)")
+ public void checkIfBoundsMovedSame(ProceedingJoinPoint thisJoinPoint,
+ Point fe) throws Throwable {
+/*
+ @Pointcut("call(public void figures.FigureElement+.move" +
+ "(int, int)) && target(fe) && args(dx, dy)")
+ void movingFigureElement(FigureElement fe, int dx, int dy) {}
+
+ @Around("movingFigureElement(fe, dx, dy)")
+ public void checkIfBoundsMovedSame(ProceedingJoinPoint thisJoinPoint,
+ FigureElement fe, int dx, int dy) throws Throwable {
+*/
+ Rectangle rectangleBefore = new Rectangle(fe.getBounds());
+ //thisJoinPoint.proceed(new Object[]{fe, dx, dy});
+ thisJoinPoint.proceed(new Object[]{fe});
+// rectangleBefore.translate(dx, dy);
+ if(!rectangleBefore.equals(fe.getBounds()))
+ throw new IllegalStateException("move() invariant violation");
+
+
+ // IF THE THREE LINES BELOW ARE UN-COMMENTED, THE EXCEPTION
+ // ISN'T THROWN!?
+ // Note: The three lines can be located anywhere inside the advice.
+// for(Object o: thisJoinPoint.getArgs()) {
+// System.out.print(o+" ");
+// }
+ }
+}