@NotNull
  @Override
  public List<? super PsiElement> process(@NotNull PsiClass psiClass, @Nullable String nameHint) {
    List<? super PsiElement> result = Collections.emptyList();
    PsiAnnotation psiAnnotation = PsiAnnotationSearchUtil.findAnnotation(psiClass, getSupportedAnnotationClasses());
    if (null != psiAnnotation
      && supportAnnotationVariant(psiAnnotation)
      && noHintOrPossibleToGenerateElementNamed(nameHint, psiClass, psiAnnotation)
      && validate(psiAnnotation, psiClass, new ProblemProcessingSink())
    ) {
      result = new ArrayList<>();
      generatePsiElements(psiClass, psiAnnotation, result, nameHint);
    }
    return result;
  }
@NotNull
  @Override
  public List<? super PsiElement> process(@NotNull PsiClass psiClass, @Nullable String nameHint)