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.

TheObject.java 9.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. import org.aspectj.testing.Tester;
  2. public class TheObject {
  3. public static void main(String[] args) { new TheObject().realMain(args); }
  4. public void realMain(String[] args) {
  5. new TheObject();
  6. }
  7. private int private_int;
  8. protected int protected_int;
  9. /*package*/ int package_int;
  10. public int public_int;
  11. private int private_call() { return private_int; }
  12. protected int protected_call() { return protected_int; }
  13. /*package*/ int package_call() { return package_int; }
  14. public int public_call() { return public_int; }
  15. }
  16. /* ----------------------
  17. privileged aspect TheAspect of eachobject(instanceof(TheObject)) {
  18. private TheObject theObject;
  19. private int myPrivate_int=-1, myPackage_int=-1, myProtected_int=-1, myPublic_int=-1;
  20. after() returning(TheObject obj): receptions(new()) {
  21. theObject = obj;
  22. }
  23. after() returning(): receptions(* realMain(..)) {
  24. test_eq();
  25. test_timeseq();
  26. test_diveq();
  27. test_modeq();
  28. test_pluseq();
  29. test_minuseq();
  30. test_leftShifteq();
  31. test_rightShifteq();
  32. test_xoreq();
  33. test_andeq();
  34. test_unsignedRightShifteq();
  35. test_postinc();
  36. test_postdec();
  37. test_preinc();
  38. test_predec();
  39. test_oreq();
  40. test_gets();
  41. test_calls();
  42. }
  43. public void test_eq() {
  44. theObject.private_int = 1;
  45. theObject.protected_int = 2;
  46. theObject.package_int = 3;
  47. theObject.public_int = 4;
  48. Tester.checkEqual(theObject.private_int,1,"set private_int");
  49. Tester.checkEqual(theObject.protected_int,2,"set protected_int");
  50. Tester.checkEqual(theObject.package_int,3,"set package_int");
  51. Tester.checkEqual(theObject.public_int,4,"set public_int");
  52. }
  53. public void test_timeseq() {
  54. theObject.private_int *= 4;
  55. theObject.protected_int *= 4;
  56. theObject.package_int *= 4;
  57. theObject.public_int *= 4;
  58. Tester.checkEqual(theObject.private_int,4,"times private_int");
  59. Tester.checkEqual(theObject.protected_int,8,"times protected_int");
  60. Tester.checkEqual(theObject.package_int,12,"times package_int");
  61. Tester.checkEqual(theObject.public_int,16,"times public_int");
  62. }
  63. public void test_diveq() {
  64. theObject.private_int /= 2;
  65. theObject.protected_int /= 2;
  66. theObject.package_int /= 2;
  67. theObject.public_int /= 2;
  68. Tester.checkEqual(theObject.private_int,2,"div private_int");
  69. Tester.checkEqual(theObject.protected_int,4,"div protected_int");
  70. Tester.checkEqual(theObject.package_int,6,"div package_int");
  71. Tester.checkEqual(theObject.public_int,8,"div public_int");
  72. }
  73. public void test_modeq() {
  74. theObject.private_int %= 2;
  75. theObject.protected_int %= 3;
  76. theObject.package_int %= 4;
  77. theObject.public_int %= 5;
  78. Tester.checkEqual(theObject.private_int,0,"mod private_int");
  79. Tester.checkEqual(theObject.protected_int,1,"mod protected_int");
  80. Tester.checkEqual(theObject.package_int,2,"mod package_int");
  81. Tester.checkEqual(theObject.public_int,3,"mod public_int");
  82. }
  83. public void test_pluseq() {
  84. theObject.private_int += 2;
  85. theObject.protected_int += 2;
  86. theObject.package_int += 2;
  87. theObject.public_int += 2;
  88. Tester.checkEqual(theObject.private_int,2,"plus private_int");
  89. Tester.checkEqual(theObject.protected_int,3,"plus protected_int");
  90. Tester.checkEqual(theObject.package_int,4,"plus package_int");
  91. Tester.checkEqual(theObject.public_int,5,"plus public_int");
  92. }
  93. public void test_minuseq() {
  94. theObject.private_int -= 1;
  95. theObject.protected_int -= 1;
  96. theObject.package_int -= 1;
  97. theObject.public_int -= 1;
  98. Tester.checkEqual(theObject.private_int,1,"minus private_int");
  99. Tester.checkEqual(theObject.protected_int,2,"minus protected_int");
  100. Tester.checkEqual(theObject.package_int,3,"minus package_int");
  101. Tester.checkEqual(theObject.public_int,4,"minus public_int");
  102. }
  103. public void test_leftShifteq() {
  104. theObject.private_int <<= 1;
  105. theObject.protected_int <<= 1;
  106. theObject.package_int <<= 1;
  107. theObject.public_int <<= 1;
  108. Tester.checkEqual(theObject.private_int,2,"left shift private_int");
  109. Tester.checkEqual(theObject.protected_int,4,"left shift protected_int");
  110. Tester.checkEqual(theObject.package_int,6,"left shift package_int");
  111. Tester.checkEqual(theObject.public_int,8,"left shift public_int");
  112. }
  113. public void test_rightShifteq() {
  114. theObject.private_int >>= 1;
  115. theObject.protected_int >>= 1;
  116. theObject.package_int >>= 1;
  117. theObject.public_int >>= 1;
  118. Tester.checkEqual(theObject.private_int,1,"right shift private_int");
  119. Tester.checkEqual(theObject.protected_int,2,"right shift protected_int");
  120. Tester.checkEqual(theObject.package_int,3,"right shift package_int");
  121. Tester.checkEqual(theObject.public_int,4,"right shift public_int");
  122. }
  123. public void test_xoreq() {
  124. theObject.private_int ^= 0;
  125. theObject.protected_int ^= 1;
  126. theObject.package_int ^= 1;
  127. theObject.public_int ^= 1;
  128. Tester.checkEqual(theObject.private_int,1,"xor private_int");
  129. Tester.checkEqual(theObject.protected_int,3,"xor protected_int");
  130. Tester.checkEqual(theObject.package_int,2,"xor package_int");
  131. Tester.checkEqual(theObject.public_int,5,"xor public_int");
  132. }
  133. public void test_andeq() {
  134. theObject.private_int &= 3;
  135. theObject.protected_int &= 6;
  136. theObject.package_int &= 3;
  137. theObject.public_int &= 4;
  138. Tester.checkEqual(theObject.private_int,1,"and private_int");
  139. Tester.checkEqual(theObject.protected_int,2,"and protected_int");
  140. Tester.checkEqual(theObject.package_int,2,"and package_int");
  141. Tester.checkEqual(theObject.public_int,4,"and public_int");
  142. }
  143. public void test_unsignedRightShifteq() {
  144. theObject.private_int >>>= 0;
  145. theObject.protected_int >>>= 1;
  146. theObject.package_int >>>= 1;
  147. theObject.public_int >>>= 2;
  148. Tester.checkEqual(theObject.private_int,1,"unsigned right shift private_int");
  149. Tester.checkEqual(theObject.protected_int,1,"unsigned right shift protected_int");
  150. Tester.checkEqual(theObject.package_int,1,"unsigned right shift package_int");
  151. Tester.checkEqual(theObject.public_int,1,"unsigned right shift public_int");
  152. }
  153. public void test_postinc() {
  154. theObject.private_int ++;
  155. theObject.protected_int ++;
  156. theObject.package_int ++;
  157. theObject.public_int ++;
  158. Tester.checkEqual(theObject.private_int,2,"post ++ private_int");
  159. Tester.checkEqual(theObject.protected_int,2,"post ++ protected_int");
  160. Tester.checkEqual(theObject.package_int,2,"post ++ package_int");
  161. Tester.checkEqual(theObject.public_int,2,"post ++ public_int");
  162. }
  163. public void test_postdec() {
  164. theObject.private_int --;
  165. theObject.protected_int --;
  166. theObject.package_int --;
  167. theObject.public_int --;
  168. Tester.checkEqual(theObject.private_int,1,"post -- private_int");
  169. Tester.checkEqual(theObject.protected_int,1,"post -- protected_int");
  170. Tester.checkEqual(theObject.package_int,1,"post -- package_int");
  171. Tester.checkEqual(theObject.public_int,1,"post -- public_int");
  172. }
  173. public void test_preinc() {
  174. ++ theObject.private_int;
  175. ++ theObject.protected_int;
  176. ++ theObject.package_int;
  177. ++ theObject.public_int;
  178. Tester.checkEqual(theObject.private_int,2,"pre ++ private_int");
  179. Tester.checkEqual(theObject.protected_int,2,"pre ++ protected_int");
  180. Tester.checkEqual(theObject.package_int,2,"pre ++ package_int");
  181. Tester.checkEqual(theObject.public_int,2,"pre ++ public_int");
  182. }
  183. public void test_predec() {
  184. -- theObject.private_int;
  185. -- theObject.protected_int;
  186. -- theObject.package_int;
  187. -- theObject.public_int;
  188. Tester.checkEqual(theObject.private_int,1,"pre -- private_int");
  189. Tester.checkEqual(theObject.protected_int,1,"pre -- protected_int");
  190. Tester.checkEqual(theObject.package_int,1,"pre -- package_int");
  191. Tester.checkEqual(theObject.public_int,1,"pre -- public_int");
  192. }
  193. public void test_oreq() {
  194. theObject.private_int |= 8;
  195. theObject.protected_int |= 8;
  196. theObject.package_int |= 8;
  197. theObject.public_int |= 8;
  198. Tester.checkEqual(theObject.private_int,9,"or private_int");
  199. Tester.checkEqual(theObject.protected_int,9,"or protected_int");
  200. Tester.checkEqual(theObject.package_int,9,"or package_int");
  201. Tester.checkEqual(theObject.public_int,9,"or public_int");
  202. }
  203. public void test_gets() {
  204. myPrivate_int = theObject.private_int;
  205. myProtected_int = theObject.protected_int;
  206. myPackage_int = theObject.package_int;
  207. myPublic_int = theObject.public_int;
  208. }
  209. public void test_calls() {
  210. theObject.private_call();
  211. theObject.protected_call();
  212. theObject.package_call();
  213. theObject.public_call();
  214. }
  215. }
  216. -------------------- */