Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

GeneratingDuplicateNamedAdviceMethodsInAbstractAspects.java 1.1KB

123456789101112131415161718192021222324252627282930313233343536
  1. import org.aspectj.testing.Tester;
  2. import org.aspectj.testing.Tester;
  3. public class GeneratingDuplicateNamedAdviceMethodsInAbstractAspects {
  4. public static void main(String[] args) {
  5. new GeneratingDuplicateNamedAdviceMethodsInAbstractAspects().realMain(args);
  6. }
  7. public void realMain(String[] args) {
  8. new C().c();
  9. Tester.checkAllEvents();
  10. }
  11. static {
  12. Tester.expectEvent("c");
  13. }
  14. }
  15. class C {
  16. public void c() { Tester.event("c"); }
  17. }
  18. abstract aspect A {
  19. pointcut c(): call(void C.c());
  20. protected static void a(String str, Object o) {
  21. Class c = o.getClass();
  22. Tester.event(str);
  23. Tester.check(!A.class.equals(c), "A is abstract!");
  24. Tester.check(Inner.class.equals(c), "Inner must equal "+c);
  25. }
  26. after(): c() { a("after1", this); }
  27. after(): c() { a("after2", this); }
  28. before(): c() { a("before1", this); }
  29. before(): c() { a("before2", this); }
  30. void around(): c() { a("around1", this); proceed(); }
  31. void around(): c() { a("around2", this); proceed(); }
  32. static aspect Inner {}
  33. }