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.

CaseSeven.java 739B

1234567891011121314151617181920212223242526272829303132333435
  1. // CaseSeven - annotations in packages
  2. package p.q.r;
  3. import java.lang.annotation.*;
  4. public class CaseSeven {
  5. public static void main(String []argv) {
  6. CaseSeven o = new CaseSeven();
  7. o.a();
  8. o.b();
  9. o.c();
  10. o.d();
  11. o.e();
  12. }
  13. public void a() {}
  14. @Anno(Level.NONE) public void b() {}
  15. @Anno(Level.ONE) public void c() {}
  16. @Anno(Level.TWO) public void d() {}
  17. @Anno(Level.THREE) public void e() {}
  18. }
  19. enum Level { NONE, ONE, TWO, THREE; }
  20. @Retention(RetentionPolicy.RUNTIME)
  21. @interface Anno { Level value();}
  22. aspect X {
  23. before(Level l): execution(@Anno !@Anno(Level.NONE) * *(..)) && @annotation(p.q.r.Anno(l)) {
  24. System.out.println(l);
  25. }
  26. }