4
import figures.primitives.planar.Point;
6
import java.awt.Canvas;
9
//pointcut sendSuccess(): cflow(setX()) && !handler(Exception);
11
public String Point.getName() {
15
public int figures.primitives.planar.Point.DEFAULT_X = 0;
17
public pointcut constructions(): call(Point.new(int, int)) || call(SolidPoint.new(int, int, int));
19
public pointcut moves(FigureElement fe): target(fe) &&
20
(call(String Point.getName()) ||
21
call(void FigureElement.incrXY(int, int)) ||
22
call(void Point.setX(int)) ||
23
call(void Point.setY(int)) ||
24
call(void SolidPoint.setZ(int)));
26
pointcut mainExecution():
27
execution(int main(*));
29
pointcut runtimeHandlers(): mainExecution()
30
|| handler(RuntimeException);
32
public pointcut mumble(): runtimeHandlers();
34
before(int newValue): set(int *.*) && args(newValue) { }
36
before(): get(int *.*) { }
38
before(): constructions() {
39
System.out.println("> before construction, jp: " + thisJoinPoint.getSignature());
42
before(FigureElement fe): moves(fe) {
43
System.out.println("> about to move FigureElement at X-coord: ");
46
after(): initialization(Point.new(..)) || staticinitialization(Point) {
47
System.out.println("> Point initialized");
52
System.err.println(">> in after advice...");
56
after(FigureElement fe): target(fe) &&
57
(call(void FigureElement.incrXY(int, int)) ||
58
call(void Point.setX(int)) ||
59
call(void Point.setY(int)) ||
60
call(void SolidPoint.setZ(int))) {
61
System.out.println("> yo.");
64
after(FigureElement fe):
66
(call(void FigureElement.incrXY(int, int)) ||
67
call(void Line.setP1(Point)) ||
68
call(void Line.setP2(Point)) ||
69
call(void Point.setX(int)) ||
70
call(void Point.setY(int))) { }
72
declare parents: Point extends java.io.Serializable;
74
declare parents: Point implements java.util.Observable;
76
// AMC - this next line doesn't make sense!! Can these tests ever
78
//declare soft: Point: call(* *(..));
82
pointcut illegalNewFigElt(): call(FigureElement+.new(..)) &&
83
!withincode(* Main.main(..));
85
// pointcut illegalNewFigElt(): execution(FigureElement+.new(..));
87
declare error: illegalNewFigElt():
88
"Illegal figure element constructor call.";
90
declare warning: illegalNewFigElt():
91
"Illegal figure element constructor call.";