@Override
  public @Nullable NullabilityAnnotationInfo getNullabilityByContainerAnnotation(@NotNull PsiAnnotation anno,
                                                                                 @NotNull PsiElement context,
                                                                                 PsiAnnotation.TargetType @NotNull [] types,
                                                                                 boolean superPackage) {
    if (!superPackage && 
        anno.hasQualifiedName(DEFAULT_ANNOTATION_FOR_PARAMETERS) && 
        ArrayUtil.contains(PsiAnnotation.TargetType.PARAMETER, types)) {
      PsiAnnotationMemberValue value = anno.findAttributeValue(PsiAnnotation.DEFAULT_REFERENCED_METHOD_NAME);
      if (value instanceof PsiClassObjectAccessExpression cls &&
          cls.getOperand().getType() instanceof PsiClassType clsType &&
          ("NonNull".equals(clsType.getClassName()) || "Nullable".equals(clsType.getClassName()))) {
        PsiClass resolved = clsType.resolve();
        if (resolved != null) {
          String qualifiedName = resolved.getQualifiedName();
          if (NON_NULL.equals(qualifiedName)) {
            return new NullabilityAnnotationInfo(anno, Nullability.NOT_NULL, true);
          }
          if (NULLABLE.equals(qualifiedName)) {
            return new NullabilityAnnotationInfo(anno, Nullability.NULLABLE, true);
          }
        }
      }
    }
    return null;
  }
@Override
  public @Nullable NullabilityAnnotationInfo getNullabilityByContainerAnnotation(@NotNull PsiAnnotation anno,
                                                                                 @NotNull PsiElement context,
                                                                                 PsiAnnotation.TargetType @NotNull [] types,
                                                                                 boolean superPackage)