mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +01:00
Added null safety annotations.
This commit is contained in:
@@ -4,10 +4,15 @@ targetCompatibility = 1.6
|
||||
|
||||
apply plugin: 'witness'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile "com.google.dagger:dagger:2.0.2"
|
||||
compile 'com.google.dagger:dagger-compiler:2.0.2'
|
||||
compile 'org.jetbrains:annotations-java5:15.0'
|
||||
compile 'com.google.code.findbugs:jsr305:3.0.1'
|
||||
}
|
||||
|
||||
dependencyVerification {
|
||||
@@ -18,6 +23,7 @@ dependencyVerification {
|
||||
'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
||||
'com.google.dagger:dagger-producers:99ec15e8a0507ba569e7655bc1165ee5e5ca5aa914b3c8f7e2c2458f724edd6b',
|
||||
'com.google.guava:guava:d664fbfc03d2e5ce9cab2a44fb01f1d0bf9dfebeccc1a473b1f9ea31f79f6f99',
|
||||
'com.google.code.findbugs:jsr305:c885ce34249682bc0236b4a7d56efcc12048e6135a5baf7a9cde8ad8cda13fcd'
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.briarproject.api.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.FIELD;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
/**
|
||||
* This annotation can be applied to a package or class to indicate that
|
||||
* the fields in that element are non-null by default unless:
|
||||
* <ul>
|
||||
* <li> There is an explicit nullness annotation
|
||||
* <li> There is a default nullness annotation applied to a more tightly
|
||||
* nested element.
|
||||
* </ul>
|
||||
*/
|
||||
@Documented
|
||||
@Nonnull
|
||||
@TypeQualifierDefault(FIELD)
|
||||
@Retention(RUNTIME)
|
||||
public @interface FieldsNotNullByDefault {
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.briarproject.api.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.RetentionPolicy.RUNTIME;
|
||||
|
||||
/**
|
||||
* This annotation can be applied to a package or class to indicate that
|
||||
* the methods in that element are non-null by default unless:
|
||||
* <ul>
|
||||
* <li> There is an explicit nullness annotation
|
||||
* <li> The method overrides a method in a superclass (in which case the
|
||||
* annotation of the corresponding method in the superclass applies)
|
||||
* <li> There is a default nullness annotation applied to a more tightly
|
||||
* nested element.
|
||||
* </ul>
|
||||
*/
|
||||
@Documented
|
||||
@Nonnull
|
||||
@TypeQualifierDefault(METHOD)
|
||||
@Retention(RUNTIME)
|
||||
public @interface MethodsNotNullByDefault {
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package org.briarproject.api.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.FIELD;
|
||||
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 fields, methods and parameters in that element are non-null by default
|
||||
* unless:
|
||||
* <ul>
|
||||
* <li> There is an explicit nullness annotation
|
||||
* <li> The method overrides a method in a superclass (in which case the
|
||||
* annotation of the corresponding method or parameter in the superclass
|
||||
* applies)
|
||||
* <li> There is a default nullness annotation applied to a more tightly
|
||||
* nested element.
|
||||
* </ul>
|
||||
*/
|
||||
@Documented
|
||||
@Nonnull
|
||||
@TypeQualifierDefault({FIELD, METHOD, PARAMETER})
|
||||
@Retention(RUNTIME)
|
||||
public @interface NotNullByDefault {
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.briarproject.api.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.PARAMETER;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
/**
|
||||
* This annotation can be applied to a package or class to indicate that
|
||||
* the method parameters in that element are non-null by default unless:
|
||||
* <ul>
|
||||
* <li> There is 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 nullness annotation applied to a more tightly
|
||||
* nested element.
|
||||
* </ul>
|
||||
*/
|
||||
@Documented
|
||||
@Nonnull
|
||||
@TypeQualifierDefault(PARAMETER)
|
||||
@Retention(RUNTIME)
|
||||
public @interface ParametersNotNullByDefault {
|
||||
}
|
||||
Reference in New Issue
Block a user