package autodagger; import java.lang.annotation.Annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Target; /** * @author Lukasz Piliszczuk - lukasz.pili@gmail.com */ @Target(ElementType.TYPE) public @interface AutoComponent { Class<?>[] modules() default {}; Class<?>[] dependencies() default {}; Class<?>[] superinterfaces() default {}; /** * Default is the class on which the @AutoComponent annotation is applied */ Class<?> target() default void.class; /** * Includes modules, dependencies and superinterfaces from an annotation that is * itself annotated with @AutoComponent */ Class<? extends Annotation> includes() default Annotation.class; /** * Subcomponents to be declared inside this component */ Class<?>[] subcomponents() default {}; }