summaryrefslogtreecommitdiffstats
path: root/tests/base/test102/Driver.java
blob: 6d5cf27cd1a6199fb89ae8c4a34d9585aad2f7d2 (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
import org.aspectj.testing.Tester;

public class Driver {
  static Object objectFromClass; 
  static Object objectFromAspect; 

  static String stringFromClass;
  static String stringFromAspect;
  
  public static void main(String[] args) { test(); }
  
  static public void test() {
    Driver       obj = new Driver();
    
    obj.doit();

    Tester.check(objectFromClass == objectFromAspect,
                  "this matches this");
    Tester.check(stringFromClass.equals(stringFromAspect),
                  "this.toString() matches this.toString()");
  }
 
  void doit() {
    objectFromClass = this;
    stringFromClass = this.toString();
  }
}

aspect DriverAspect pertarget(target(Driver)) {
  before (Driver d): target(d) && call(* doit(..)) {
      d.objectFromAspect = d;
      d.stringFromAspect = d.toString();
  }
}