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.

PrivilegedParsing.java 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. public class PrivilegedParsing {
  2. private int hidden;
  3. public int visible;
  4. public PrivilegedParsing(int priv, int pub) {
  5. hidden = priv;
  6. visible = pub;
  7. }
  8. public void doSomething() {
  9. System.out.println("" + hidden + ", " + visible + "");
  10. }
  11. public static void main(String[] args) {
  12. PrivilegedParsing capsule = new PrivilegedParsing(1, 1);
  13. capsule.doSomething();
  14. }
  15. }
  16. aspect Outer {
  17. static privileged //<== JUST TRY TO UNCOMMENT THIS!
  18. aspect Inner {
  19. pointcut call2doSomething(PrivilegedParsing capsule):
  20. call(void PrivilegedParsing.doSomething())
  21. && target(capsule);
  22. before(PrivilegedParsing capsule): call2doSomething(capsule) {
  23. capsule.visible++;
  24. capsule.hidden++;
  25. }
  26. }
  27. }
  28. interface Marker {
  29. static privileged //<== JUST TRY TO UNCOMMENT THIS!
  30. aspect Inner {
  31. pointcut call2doSomething(PrivilegedParsing capsule):
  32. call(void PrivilegedParsing.doSomething())
  33. && target(capsule);
  34. before(PrivilegedParsing capsule): call2doSomething(capsule) {
  35. capsule.visible++;
  36. capsule.hidden++;
  37. }
  38. }
  39. }