From cf042abb2d0c76e2d382e91b536f3e9be7bc1317 Mon Sep 17 00:00:00 2001
From: ehilsdal
Date: Thu, 28 Aug 2003 17:34:47 +0000
Subject: updated section 3
---
docs/teaching/exercises/answers/Answer1d.java | 23 -----------------------
docs/teaching/exercises/answers/Answer3a.java | 6 ++----
docs/teaching/exercises/answers/Answer3b.java | 9 ++++++---
docs/teaching/exercises/answers/Answer3c.java | 18 ++++--------------
docs/teaching/exercises/build.xml | 5 +++++
docs/teaching/exercises/index.html | 26 ++++++++++++++++----------
6 files changed, 33 insertions(+), 54 deletions(-)
delete mode 100644 docs/teaching/exercises/answers/Answer1d.java
(limited to 'docs/teaching')
diff --git a/docs/teaching/exercises/answers/Answer1d.java b/docs/teaching/exercises/answers/Answer1d.java
deleted file mode 100644
index 1aa74e79b..000000000
--- a/docs/teaching/exercises/answers/Answer1d.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC).
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Common Public License v1.0
- * which accompanies this distribution and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * PARC initial implementation
- * ******************************************************************/
-
-package answers;
-
-aspect Answer1c {
- declare error
- : set(private * *)
- && !(withincode(* set*(..))
- || withincode(new(..))
- || withincode(void figures.Point.move(int, int)))
- && within(figures.*)
- : "bad field set";
-}
diff --git a/docs/teaching/exercises/answers/Answer3a.java b/docs/teaching/exercises/answers/Answer3a.java
index fc5e1d3f7..3bbfb1e98 100644
--- a/docs/teaching/exercises/answers/Answer3a.java
+++ b/docs/teaching/exercises/answers/Answer3a.java
@@ -14,10 +14,8 @@ package answers;
import support.Log;
-import figures.Point;
-
aspect Answer3a {
- before(): execution(void Point.move(int, int)) {
- Log.log("moving");
+ before(): execution(public * *(..)) && within(figures.*) {
+ Log.log(thisJoinPoint.toString());
}
}
diff --git a/docs/teaching/exercises/answers/Answer3b.java b/docs/teaching/exercises/answers/Answer3b.java
index 0328fe164..b88e45780 100644
--- a/docs/teaching/exercises/answers/Answer3b.java
+++ b/docs/teaching/exercises/answers/Answer3b.java
@@ -19,8 +19,11 @@ import figures.Group;
import figures.FigureElement;
aspect Answer3b {
- before():
- execution(void Group.add(FigureElement)) && args(Point) {
- Log.log("adding Point");
+ before(Object o):
+ execution(public * *(..))
+ && within(figures.*) && target(o)
+ && !withincode(public String toString(..)) // don't overflow!
+ {
+ Log.log(thisJoinPoint.toString() + " at " + o);
}
}
diff --git a/docs/teaching/exercises/answers/Answer3c.java b/docs/teaching/exercises/answers/Answer3c.java
index 576694e68..33483bc21 100644
--- a/docs/teaching/exercises/answers/Answer3c.java
+++ b/docs/teaching/exercises/answers/Answer3c.java
@@ -14,21 +14,11 @@ package answers;
import support.Log;
-import figures.Point;
-import figures.Group;
-import figures.FigureElement;
+import figures.*;
aspect Answer3c {
- private Group Point.enclosingGroup = null;
-
- before(Point p, Group g):
- execution(void add(FigureElement)) && args(p) && target(g) {
- p.enclosingGroup = g;
- }
-
- before(Point p):
- call(void move(int, int)) && target(p) {
- Log.log("moving as a part of " + p.enclosingGroup);
+ before():
+ execution(void Group.add(FigureElement)) && args(Point) {
+ Log.log("adding Point");
}
-
}
diff --git a/docs/teaching/exercises/build.xml b/docs/teaching/exercises/build.xml
index 4ba785dc1..faf523754 100755
--- a/docs/teaching/exercises/build.xml
+++ b/docs/teaching/exercises/build.xml
@@ -106,5 +106,10 @@
+
+
+
+
+
diff --git a/docs/teaching/exercises/index.html b/docs/teaching/exercises/index.html
index f44ac7806..755c15f9d 100644
--- a/docs/teaching/exercises/index.html
+++ b/docs/teaching/exercises/index.html
@@ -265,29 +265,26 @@ aspect,
-$ ajc -Xlint -argfile base.lst
-
$ java tests.Test2a
-.F.F.F....
-Time: 0.099
-There were 3 failures:
+.F..F....
+Time: 0.04
+There were 2 failures:
1) testTooSmall(tests.Test2a)junit.framework.AssertionFailedError: should have thrown IllegalArgumentException
-2) testTooBig(tests.Test2a)junit.framework.AssertionFailedError: should have thrown IllegalArgumentException
-3) testMove(tests.Test2a)junit.framework.AssertionFailedError: should have thrown IllegalArgumentException
+2) testMove(tests.Test2a)junit.framework.AssertionFailedError: should have thrown IllegalArgumentException
FAILURES!!!
-Tests run: 7, Failures: 3, Errors: 0
+Tests run: 7, Failures: 2, Errors: 0
But after compiling in the aspect...
-$ ajc -Xlint -argfile base.lst
+$ ajc -Xlint -argfile base.lst answers/Answer.java
$ java tests.Test2a
.......
-Time: 0.097
+Time: 0.04
OK (7 tests)
@@ -430,6 +427,15 @@ and call Log.log(String)
Tools: target
+ AspectJ can expose the target object at a join point for tracing.
+In this exercise, you will print not only the join point information,
+but also the target object, with the form
+
+
+
+thisJoinPointInfo at targetObject
+
+
c. More specialized logging
--
cgit v1.2.3