01: package org.codehaus.aspectwerkz.annotation;
02:
03: import java.lang.annotation.Target;
04: import java.lang.annotation.ElementType;
05: import java.lang.annotation.Retention;
06: import java.lang.annotation.RetentionPolicy;
07: import java.lang.annotation.Annotation;
08: import java.lang.reflect.Modifier;
09:
10: @Target({ElementType.METHOD,ElementType.FIELD})
11: @Retention(RetentionPolicy.RUNTIME)
12: public @interface Execution {
13: int modifiers() default Modifier.PRIVATE | Modifier.PROTECTED; // FIXME
14:
15: Class<? extends Annotation>[] annotations() default Null.class;
16:
17: Class returnType() default Null.class;
18:
19: String name() default "*";
20:
21: Class[] parameterTypes() default Null.class;
22:
23: // anonymous = Annotations only
24: // but could be a string as well - how to do that ?
25: Class<? extends Annotation>[] value() default Null.class;
26: }
27:
28: class Null implements Annotation {
29: public Class<? extends Annotation> annotationType() {
30: return null;
31: }
32: }
|