001/*-------------------------------------------------------------------------+
002|                                                                          |
003| Copyright (c) 2009-2019 CQSE GmbH                                        |
004|                                                                          |
005+-------------------------------------------------------------------------*/
006package eu.cqse.check.framework.core.ruleset;
007
008import java.lang.annotation.Documented;
009import java.lang.annotation.ElementType;
010import java.lang.annotation.Retention;
011import java.lang.annotation.RetentionPolicy;
012import java.lang.annotation.Target;
013
014import org.atteo.classindex.IndexAnnotated;
015
016/**
017 * Meta annotation for marking all annotations that mark checks for specific
018 * rulesets.
019 */
020@Documented
021@Retention(RetentionPolicy.RUNTIME)
022@Target(ElementType.ANNOTATION_TYPE)
023@IndexAnnotated
024public @interface RulesetAnnotation {
025
026        /** The readable name of the ruleset. */
027        String name();
028
029        /** The enumeration listing all rules. */
030        Class<? extends IRulesetRule> rules();
031
032}