|  | package javax.annotation; | 
|  |  | 
|  | import java.lang.annotation.Documented; | 
|  | import java.lang.annotation.ElementType; | 
|  | import java.lang.annotation.Retention; | 
|  | import java.lang.annotation.RetentionPolicy; | 
|  |  | 
|  | import javax.annotation.meta.TypeQualifierDefault; | 
|  |  | 
|  | /** | 
|  | * This annotation can be applied to a package, class or method to indicate that | 
|  | * the method parameters in that element are nullable by default unless there is: | 
|  | * <ul> | 
|  | * <li>An explicit nullness annotation | 
|  | * <li>The method overrides a method in a superclass (in which case the | 
|  | * annotation of the corresponding parameter in the superclass applies) | 
|  | * <li> there is a default parameter annotation applied to a more tightly nested | 
|  | * element. | 
|  | * </ul> | 
|  | * <p>This annotation implies the same "nullness" as no annotation. However, it is different | 
|  | * than having no annotation, as it is inherited and it can override a ParametersAreNonnullByDefault | 
|  | * annotation at an outer scope. | 
|  | * | 
|  | */ | 
|  | @Documented | 
|  | @Nullable | 
|  | @TypeQualifierDefault(ElementType.PARAMETER) | 
|  | @Retention(RetentionPolicy.RUNTIME) | 
|  | public @interface ParametersAreNullableByDefault { | 
|  | } |