12345678910111213141516171819202122232425262728293031323334 |
- // CaseTen - binding multiple things
- import java.lang.annotation.*;
-
- public class CaseTen {
-
- public static void main(String []argv) {
-
- CaseTen o = new CaseTen();
- o.a(1);
- o.b(2);
- o.c(3);
- o.d(4);
- o.e(5);
- }
-
- public void a(int i) {}
- @Anno(Level.NONE) public void b(int i) {}
- @Anno(Level.ONE) public void c(int i) {}
- @Anno(Level.TWO) public void d(int i) {}
- @Anno(Level.THREE) public void e(int i) {}
-
- }
-
- enum Level { NONE, ONE, TWO, THREE; }
-
- @Retention(RetentionPolicy.RUNTIME)
- @interface Anno { Level value();}
-
- aspect X {
-
- before(Level l,int i): execution(@Anno !@Anno(Level.NONE) * *(..)) && @annotation(Anno(l)) && args(i) {
- System.out.println(l+":"+i);
- }
- }
|