package org.codehaus.aspectwerkz.annotation; import java.lang.annotation.Target; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Annotation; import java.lang.reflect.Modifier; @Target({ElementType.METHOD, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface Execution { int modifiers() default Modifier.PRIVATE | Modifier.PROTECTED; // FIXME Class<? extends Annotation>[] annotations() default Null.class; Class returnType() default Null.class; String name() default "*"; Class[] parameterTypes() default Null.class; // anonymous = Annotations only // but could be a string as well - how to do that ? Class<? extends Annotation>[] value() default Null.class; } class Null implements Annotation { public Class<? extends Annotation> annotationType() { return null; } }