1package javax.annotation;
2
3import java.lang.annotation.Documented;
4import java.lang.annotation.ElementType;
5import java.lang.annotation.Retention;
6import java.lang.annotation.RetentionPolicy;
7
8import javax.annotation.meta.TypeQualifierDefault;
9
10/**
11 * This annotation can be applied to a package, class or method to indicate that
12 * the method parameters in that element are nonnull by default unless there is:
13 * <ul>
14 * <li>An explicit nullness annotation
15 * <li>The method overrides a method in a superclass (in which case the
16 * annotation of the corresponding parameter in the superclass applies)
17 * <li> there is a default parameter annotation applied to a more tightly nested
18 * element.
19 * </ul>
20 *
21 */
22@Documented
23@Nonnull
24@TypeQualifierDefault(ElementType.PARAMETER)
25@Retention(RetentionPolicy.RUNTIME)
26public @interface ParametersAreNonnullByDefault {
27}
28