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.

IntroducingPrivateMethodsOnInterfaces.java 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import org.aspectj.testing.Tester;
  2. import org.aspectj.testing.Tester;
  3. public class IntroducingPrivateMethodsOnInterfaces {
  4. public static void main(String[] args) {
  5. AA.go();
  6. }
  7. static {
  8. Tester.expectEvent("private_private");
  9. Tester.expectEvent("private_package");
  10. Tester.expectEvent("private_public");
  11. Tester.expectEvent("package_private");
  12. Tester.expectEvent("package_package");
  13. Tester.expectEvent("package_public");
  14. Tester.expectEvent("public_private");
  15. Tester.expectEvent("public_package");
  16. Tester.expectEvent("public_public");
  17. }
  18. }
  19. interface I {}
  20. class C {
  21. // private void _private(String s) { Tester.event("private_"+s); }
  22. // /*package*/ void _package(String s) { Tester.event("package_"+s); }
  23. // public void _public(String s) { Tester.event("public_"+s); }
  24. // private void private_private() { _private("private"); }
  25. // private void private_package() { _package("private"); }
  26. // private void private_public() { _public("private"); }
  27. // /*package*/ void package_private() { _private("package"); }
  28. // /*package*/ void package_package() { _package("package"); }
  29. // /*package*/ void package_public() { _public("package"); }
  30. // public void public_private() { _private("public"); }
  31. // public void public_package() { _package("public"); }
  32. // public void public_public() { _public("public"); }
  33. }
  34. aspect AA {
  35. public static void go() {
  36. I c = new C();
  37. c.private_private();
  38. c.private_package();
  39. c.private_public();
  40. c.package_private();
  41. c.package_package();
  42. c.package_public();
  43. c.public_private();
  44. c.public_package();
  45. c.public_public();
  46. }
  47. private void I._private(String s) { Tester.event("private_"+s); }
  48. /*package*/ void I._package(String s) { Tester.event("package_"+s); }
  49. public void I._public(String s) { Tester.event("public_"+s); }
  50. private void I.private_private() { _private("private"); }
  51. private void I.private_package() { _package("private"); }
  52. private void I.private_public() { _public("private"); }
  53. /*package*/ void I.package_private() { _private("package"); }
  54. /*package*/ void I.package_package() { _package("package"); }
  55. /*package*/ void I.package_public() { _public("package"); }
  56. public void I.public_private() { _private("public"); }
  57. public void I.public_package() { _package("public"); }
  58. public void I.public_public() { _public("public"); }
  59. }
  60. aspect A {
  61. declare parents: C implements I;
  62. }