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.

AdviceOnPrivileged.java 640B

123456789101112131415161718192021222324252627282930313233
  1. import org.aspectj.testing.Tester;
  2. public class AdviceOnPrivileged {
  3. public static void main(String[] args) {
  4. C c1 = new C();
  5. c1.getX();
  6. Tester.check(!c1.gotXOutsideC, "normal field access");
  7. C c2 = new C();
  8. ExposeC.getX(c2);
  9. Tester.check(c2.gotXOutsideC, "privileged field access");
  10. }
  11. }
  12. class C {
  13. public boolean gotXOutsideC = false;
  14. private int x=1;
  15. public int getX() { return x; }
  16. }
  17. aspect WatchGets {
  18. before(C c): get(int C.x) && target(c) && !within(C) {
  19. System.out.println("got C.x");
  20. c.gotXOutsideC = true;
  21. }
  22. }
  23. privileged aspect ExposeC {
  24. public static int getX(C c) { return c.x; }
  25. }