All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.briarproject.nullsafety.InterfaceNotNullByDefault Maven / Gradle / Ivy

The newest version!
package org.briarproject.nullsafety;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;

import javax.annotation.Nonnull;
import javax.annotation.meta.TypeQualifierDefault;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * This annotation can be applied to a package or class to indicate that the methods and parameters
 * in that element are non-null by default unless:
 * 
    *
  • There is an explicit nullness annotation *
  • The method overrides a method in a superclass (in which case the annotation of the * corresponding method or parameter in the superclass applies) *
  • There is a default nullness annotation applied to a more tightly nested element. *
* This is equivalent to applying both {@link MethodsNotNullByDefault} and * {@link ParametersNotNullByDefault}; */ @Documented @Nonnull @TypeQualifierDefault({METHOD, PARAMETER}) @Retention(RUNTIME) public @interface InterfaceNotNullByDefault { }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy