@@ -0,0 +1,1109 @@
+package org.metaborg.util;%0A%0Aimport javax.annotation.Nonnull;%0Aimport javax.annotation.meta.TypeQualifierDefault;%0Aimport java.lang.annotation.Documented;%0Aimport java.lang.annotation.ElementType;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0A%0A%0A/**%0A * This annotation can be applied to a package, class or method to indicate that the class fields,%0A * method return types and parameters in that element are not null by default unless there is:%0A * %3Cul%3E%0A * %3Cli%3Ean explicit nullness annotation;%0A * %3Cli%3Ethe method overrides a method in a superclass (in which case the annotation of the%0A * corresponding parameter in the superclass applies);%0A * %3Cli%3Ethere is a default parameter annotation applied to a more tightly nested element.%0A * %3C/ul%3E%0A */%0A@Documented%0A@Nonnull%0A@TypeQualifierDefault(%0A%7B%0A    ElementType.ANNOTATION_TYPE,%0A    ElementType.CONSTRUCTOR,%0A    ElementType.FIELD,%0A    ElementType.LOCAL_VARIABLE,%0A    ElementType.METHOD,%0A    ElementType.PACKAGE,%0A    ElementType.PARAMETER,%0A    ElementType.TYPE%0A%7D)%0A@Retention(RetentionPolicy.RUNTIME)%0Apublic @interface NonNullByDefault %7B%7D%0A

Add NonNullByDefault annotation class