package checkers.quals;
import java.lang.annotation.Documented;
import static java.lang.annotation.ElementType.*;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Specifies the annotations to be included in a type without having to provide
* them explicitly.
*
* This annotation permits specifying multiple default qualifiers for more
* than one type system. It is necessary because Java forbids multiple
* annotations of the same name at a single location.
*
* Example:
* <!-- is a hack that prevents @ from being the first charater on the line, which confuses Javadoc -->
* <code><pre>
* @DefaultQualifiers({
* @DefaultQualifier("NonNull"),
* @DefaultQualifier(value = "Interned", locations = ALL_EXCEPT_LOCALS),
* @DefaultQualifier("Tainted")
* })
* </pre></code>
*
* @see DefaultQualifier
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({CONSTRUCTOR, METHOD, FIELD, LOCAL_VARIABLE, PARAMETER, TYPE})
public @interface DefaultQualifiers {
/** The default qualifier settings */
DefaultQualifier[] value() default { };
}