private static Optional<AnnotationMirror> defaultNullableTypeAnnotation(
      /* @Nullable */ ProcessingEnvironment processingEnv) {
    if (processingEnv == null) {
      return Optional.empty();
    }
    // -Afoo without `=` sets "foo" to null in the getOptions() map.
    String nullableOption =
        Strings.nullToEmpty(
            processingEnv.getOptions().getOrDefault(NULLABLE_OPTION, DEFAULT_NULLABLE));
    return (!nullableOption.isEmpty()
            && processingEnv.getSourceVersion().ordinal() >= SourceVersion.RELEASE_8.ordinal())
        ? Optional.ofNullable(processingEnv.getElementUtils().getTypeElement(nullableOption))
            .map(t -> annotationMirrorOf(MoreTypes.asDeclared(t.asType())))
        : Optional.empty();
  }
Returns a list that is either empty or contains a single element that is an appropriate
{@code @Nullable} type-annotation.
value/src/main/java/com/google/auto/value/processor/Nullables.java