NotNull
  public static String getBuilderClassName(@NotNull PsiClass psiClass,
                                           @NotNull PsiAnnotation psiAnnotation,
                                           @Nullable PsiMethod psiMethod) {
    final String builderClassName = PsiAnnotationUtil.getStringAnnotationValue(psiAnnotation, ANNOTATION_BUILDER_CLASS_NAME, "");
    if (!StringUtil.isEmptyOrSpaces(builderClassName)) {
      return builderClassName;
    }

    String relevantReturnType = psiClass.getName();
    if(psiClass instanceof PsiAnonymousClass psiAnonymousClass) {
      relevantReturnType = psiAnonymousClass.getBaseClassType().getClassName();
    }

    if (null != psiMethod && !psiMethod.isConstructor()) {
      final PsiType psiMethodReturnType = psiMethod.getReturnType();
      if (psiMethodReturnType instanceof PsiClassType psiClassType) {
        relevantReturnType = psiClassType.getClassName();
      }else if (null != psiMethodReturnType) {
        relevantReturnType = PsiNameHelper.getShortClassName(psiMethodReturnType.getPresentableText());
      }
    }

    return getBuilderClassName(psiClass, relevantReturnType);
  }

NotNull
  public static String getBuilderClassName(@NotNull PsiClass psiClass,
                                           @NotNull PsiAnnotation psiAnnotation,
                                           @Nullable PsiMethod psiMethod) 