| package org.checkerframework.framework.qual; |
| |
| import java.lang.annotation.Documented; |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.RetentionPolicy; |
| import java.lang.annotation.Target; |
| |
| /** |
| * Indicates that this class has been annotated for the given type system. For example, |
| * {@code @AnnotatedFor({"nullness", "regex"})} indicates that the class has been annotated with |
| * annotations such as {@code @Nullable} and {@code @Regex}. |
| * |
| * <p>You should only use this annotation in a partially-annotated library. There is no point to |
| * using it in a fully-annotated library nor in an application that does not export APIs for |
| * clients. |
| * |
| * <p>This annotation has no effect unless the {@code |
| * -AuseConservativeDefaultsForUncheckedCode=source} command-line argument is supplied. Ordinarily, |
| * the {@code -AuseConservativeDefaultsForUncheckedCode=source} command-line argument causes |
| * unannotated locations to be defaulted using conservative defaults, and it suppresses all |
| * warnings. However, a class with a relevant {@code @AnnotatedFor} annotation is always defaulted |
| * normally (typically using the CLIMB-to-top rule), and typechecking warnings are issued. |
| * |
| * @checker_framework.manual #compiling-libraries Compiling partially-annotated libraries |
| */ |
| @Documented |
| @Retention(RetentionPolicy.SOURCE) |
| @Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PACKAGE}) |
| public @interface AnnotatedFor { |
| /** |
| * Returns the type systems for which the class has been annotated. Legal arguments are any string |
| * that may be passed to the {@code -processor} command-line argument: the fully-qualified class |
| * name for the checker, or a shorthand for built-in checkers. Using the annotation with no |
| * arguments, as in {@code @AnnotatedFor({})}, has no effect. |
| * |
| * @return the type systems for which the class has been annotated |
| * @checker_framework.manual #shorthand-for-checkers Short names for built-in checkers |
| */ |
| String[] value(); |
| } |