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.

ExampleOne.java 836B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. enum TraceLevel { NONE, LEVEL1, LEVEL2, LEVEL3 }
  2. @interface Trace {
  3. TraceLevel value() default TraceLevel.NONE;
  4. }
  5. aspect X {
  6. before(): execution(@Trace !@Trace(TraceLevel.NONE) * *(..)) {
  7. System.err.println("tracing "+thisJoinPoint);
  8. }
  9. }
  10. public class ExampleOne {
  11. public static void main(String[] args) {
  12. ExampleOne eOne = new ExampleOne();
  13. eOne.m001();
  14. eOne.m002();
  15. eOne.m003();
  16. eOne.m004();
  17. eOne.m005();
  18. eOne.m006();
  19. eOne.m007();
  20. }
  21. @Trace(TraceLevel.NONE)
  22. public void m001() {}
  23. @Trace(TraceLevel.LEVEL2)
  24. public void m002() {}
  25. @Trace(TraceLevel.LEVEL3)
  26. public void m003() {}
  27. @Trace(TraceLevel.NONE)
  28. public void m004() {}
  29. @Trace(TraceLevel.LEVEL2)
  30. public void m005() {}
  31. @Trace(TraceLevel.NONE)
  32. public void m006() {}
  33. @Trace
  34. public void m007() {}
  35. }