blob: a44825428a0dff7a269f2bc625738b95d6c1dd46 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
import org.aspectj.testing.Tester;
public class NotAndDeclaringTypes {
public static void main (String args []) {
Rectangle r = new Rectangle ();
Square s = new Square ();
r.getSurface();
Tester.checkAndClearEvents(new String[] { "advice" });
s.getSurface();
Tester.checkAndClearEvents(new String[] { });
}
}
class Rectangle {
public String toString () { return "Rectangle"; }
public int getSurface () { return 100; }
}
class Square extends Rectangle {
public String toString () { return "Square"; }
public int getSurface () { return 200; }
}
aspect Concern {
pointcut pc () : call (int Rectangle.getSurface ())
&& !call (int Square.getSurface ());
before () : pc () {
Tester.event("advice");
}
}
|