You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FieldPatterns.java 895B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import org.aspectj.testing.Tester;
  2. public class FieldPatterns {
  3. public static void main(String[] args) {
  4. SuperC sc = new SuperC();
  5. C c = new C();
  6. SubC subc = new SubC();
  7. Tester.checkEqual(sc.name, "SuperC");
  8. Tester.checkEqual(sc.count, 1, "SuperC");
  9. Tester.checkEqual(c.name, "C");
  10. Tester.checkEqual(c.count, 1, "C");
  11. Tester.checkEqual(subc.name, "C");
  12. Tester.checkEqual(subc.count, 1, "SubC");
  13. Tester.checkEqual(((SuperC)c).name, "SuperC");
  14. Tester.checkEqual(c.count, 2, "C as SuperC");
  15. c.name = null;
  16. }
  17. }
  18. class SuperC {
  19. int count = 0;
  20. String name = "SuperC";
  21. }
  22. class C extends SuperC {
  23. String name = "C";
  24. }
  25. class SubC extends C {
  26. }
  27. aspect A {
  28. before(SuperC sc): get(String SuperC.name) && target(sc){
  29. sc.count++;
  30. }
  31. before(C c): get(String C.name) && target(c) {
  32. c.count++;
  33. }
  34. before(): set(String C.name) {
  35. }
  36. }