1 package com.uber.lib.unannotated; 2 3 import javax.validation.constraints.NotNull; 4 import org.checkerframework.checker.nullness.qual.NonNull; 5 import org.checkerframework.checker.nullness.qual.Nullable; 6 7 public class RestrictivelyAnnotatedClass { 8 9 public final Object field; 10 RestrictivelyAnnotatedClass(Object field)11 public RestrictivelyAnnotatedClass(Object field) { 12 this.field = field; 13 } 14 getField()15 public @Nullable Object getField() { 16 return field; 17 } 18 returnsNull()19 public static @Nullable Object returnsNull() { 20 return null; 21 } 22 consumesObjectNonNull(@onNull Object o)23 public static void consumesObjectNonNull(@NonNull Object o) {} 24 consumesObjectNotNull(@otNull Object o)25 public static void consumesObjectNotNull(@NotNull Object o) {} 26 consumesObjectUnannotated(Object o)27 public static void consumesObjectUnannotated(Object o) {} 28 acceptsNonNull(@onNull Object o)29 public void acceptsNonNull(@NonNull Object o) {} 30 acceptsNonNull2(@onNull Object o)31 public void acceptsNonNull2(@NonNull Object o) {} 32 acceptsNullable(@ullable Object o)33 public void acceptsNullable(@Nullable Object o) {} 34 acceptsNullable2(@ullable Object o)35 public void acceptsNullable2(@Nullable Object o) {} 36 returnsNonNull()37 public @NonNull Object returnsNonNull() { 38 return new Object(); 39 } 40 returnsNonNull2()41 public @NonNull Object returnsNonNull2() { 42 return new Object(); 43 } 44 returnsNullable()45 public @Nullable Object returnsNullable() { 46 return null; 47 } 48 returnsNullable2()49 public @Nullable Object returnsNullable2() { 50 return null; 51 } 52 } 53