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.

CrosscutTest.java 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import symbols.Helper;
  2. import org.aspectj.testing.Tester;
  3. import org.aspectj.tools.ide.SymbolManager;
  4. import org.aspectj.tools.ide.SourceLine;
  5. import org.aspectj.tools.ide.Declaration;
  6. import java.io.File;
  7. public class CrosscutTest {
  8. private static Helper h = new Helper();
  9. public static void main(String[] args) {
  10. Declaration classDec = h.getDecl("C.java", 3);
  11. Declaration aspectDec = h.getDecl("A.java", 3);
  12. Declaration methodDecV = h.getDecl("C.java", 8);
  13. Declaration methodDecVI = h.getDecl("C.java", 9);
  14. Declaration methodDecVLF = h.getDecl("C.java",10);
  15. Declaration methodDecISO = h.getDecl("C.java",11);
  16. Declaration fieldDecI = h.getDecl("C.java",13);
  17. Declaration fieldDecF = h.getDecl("C.java",14);
  18. Declaration pointcutDecInstOf = h.getDecl("A.java", 6);
  19. Declaration pointcutDecHasAsp = h.getDecl("A.java", 7);
  20. Declaration pointcutDecWithin = h.getDecl("A.java", 10);
  21. Declaration pointcutDecWithinAll = h.getDecl("A.java", 11);
  22. Declaration pointcutDecWithinCode = h.getDecl("A.java", 12);
  23. Declaration pointcutDecCFlow = h.getDecl("A.java", 15);
  24. Declaration pointcutDecCFlowTop = h.getDecl("A.java", 16);
  25. Declaration pointcutDecCalls = h.getDecl("A.java", 19);
  26. Declaration pointcutDecRec = h.getDecl("A.java", 20);
  27. Declaration pointcutDecExec = h.getDecl("A.java", 21);
  28. Declaration pointcutDecCallsTo = h.getDecl("A.java", 22);
  29. Declaration pointcutDecHandThr = h.getDecl("A.java", 25);
  30. Declaration pointcutDecHandErr = h.getDecl("A.java", 26);
  31. Declaration pointcutDecHandExc = h.getDecl("A.java", 27);
  32. Declaration pointcutDecHandRt = h.getDecl("A.java", 28);
  33. Declaration pointcutDecGets = h.getDecl("A.java", 31);
  34. Declaration pointcutDecSets = h.getDecl("A.java", 32);
  35. Declaration adviceDecBefore = h.getDecl("A.java", 35);
  36. Declaration adviceDecAfter = h.getDecl("A.java", 36);
  37. Declaration adviceDecAfterRet = h.getDecl("A.java", 37);
  38. Declaration adviceDecAfterThr = h.getDecl("A.java", 38);
  39. Declaration adviceDecAround = h.getDecl("A.java", 41);
  40. Declaration fieldDecIntrD = h.getDecl("A.java", 44);
  41. Declaration methodDecIntrV = h.getDecl("A.java", 45);
  42. Declaration adviceDecBeforeToString = h.getDecl("A.java", 47);
  43. Declaration adviceDecBeforeNew = h.getDecl("A.java", 48);
  44. if (!h.allDecsFound) return;
  45. // Check "points to"
  46. h.checkPointsNothing(methodDecV);
  47. h.checkPointsNothing(methodDecVI);
  48. h.checkPointsNothing(methodDecVLF);
  49. h.checkPointsNothing(methodDecISO);
  50. h.checkPointsNothing(pointcutDecInstOf);
  51. h.checkPointsNothing(pointcutDecHasAsp);
  52. h.checkPointsNothing(pointcutDecWithin);
  53. h.checkPointsNothing(pointcutDecWithinAll);
  54. h.checkPointsNothing(pointcutDecWithinCode);
  55. h.checkPointsNothing(pointcutDecCFlow);
  56. h.checkPointsNothing(pointcutDecCFlowTop);
  57. h.checkPointsNothing(pointcutDecCalls);
  58. h.checkPointsNothing(pointcutDecRec);
  59. h.checkPointsNothing(pointcutDecExec);
  60. h.checkPointsNothing(pointcutDecCallsTo);
  61. h.checkPointsNothing(pointcutDecHandThr);
  62. h.checkPointsNothing(pointcutDecHandErr);
  63. h.checkPointsNothing(pointcutDecHandExc);
  64. h.checkPointsNothing(pointcutDecHandRt);
  65. h.checkPointsNothing(pointcutDecGets);
  66. h.checkPointsNothing(pointcutDecSets);
  67. //XXX Need to decide if advices on introductions have to point to
  68. // the introduction declaration, or to the member that was introduced
  69. h.checkPointsTo(adviceDecBefore, new Declaration[]{methodDecV,methodDecIntrV});
  70. h.checkPointsTo(adviceDecAfter, new Declaration[]{methodDecV,methodDecIntrV});
  71. h.checkPointsTo(adviceDecAfterRet, new Declaration[]{methodDecISO});
  72. h.checkPointsTo(adviceDecAfterThr, new Declaration[]{methodDecV});
  73. h.checkPointsTo(adviceDecAround, new Declaration[]{methodDecV});
  74. h.checkPointsNothing(adviceDecBeforeToString);
  75. h.checkPointsNothing(adviceDecBeforeNew);
  76. // Check "pointed by"
  77. h.checkPointedToBy(methodDecV, new Declaration[]{adviceDecBefore,adviceDecAfter,adviceDecAfterThr,adviceDecAround});
  78. h.checkPointedToByNone(methodDecVI);
  79. h.checkPointedToByNone(methodDecVLF);
  80. h.checkPointedToBy(methodDecISO, new Declaration[]{adviceDecAfterRet});
  81. h.checkPointedToByNone(pointcutDecInstOf);
  82. h.checkPointedToByNone(pointcutDecHasAsp);
  83. h.checkPointedToByNone(pointcutDecWithin);
  84. h.checkPointedToByNone(pointcutDecWithinAll);
  85. h.checkPointedToByNone(pointcutDecWithinCode);
  86. h.checkPointedToByNone(pointcutDecCFlow);
  87. h.checkPointedToByNone(pointcutDecCFlowTop);
  88. h.checkPointedToByNone(pointcutDecCalls);
  89. h.checkPointedToByNone(pointcutDecRec);
  90. h.checkPointedToByNone(pointcutDecExec);
  91. h.checkPointedToByNone(pointcutDecCallsTo);
  92. h.checkPointedToByNone(pointcutDecHandThr);
  93. h.checkPointedToByNone(pointcutDecHandErr);
  94. h.checkPointedToByNone(pointcutDecHandExc);
  95. h.checkPointedToByNone(pointcutDecHandRt);
  96. h.checkPointedToByNone(pointcutDecGets);
  97. h.checkPointedToByNone(pointcutDecSets);
  98. h.checkPointedToByNone(adviceDecBefore);
  99. h.checkPointedToByNone(adviceDecBefore);
  100. h.checkPointedToByNone(adviceDecAfter);
  101. h.checkPointedToByNone(adviceDecAfterRet);
  102. h.checkPointedToByNone(adviceDecAfterThr);
  103. h.checkPointedToByNone(adviceDecAround);
  104. h.checkPointedToByNone(adviceDecBeforeToString);
  105. h.checkPointedToByNone(adviceDecBeforeNew);
  106. }
  107. }