@NotNull
  public static List<PsiMethod> process(@NotNull PsiClass psiClass, @Nullable String nameHint) {
    if (nameHint != null && !config.containsKey(nameHint)) {
      return Collections.emptyList();
    }

    List<PsiMethod> result = new ArrayList<>();

    if (nameHint != null) {
      final Pair<Collection<String>, Collection<String>> hintConfig = config.get(nameHint);
      addAnnotationMethods(psiClass, hintConfig.getFirst(), hintConfig.getSecond(), nameHint, result);
    }
    else {
      for (Map.Entry<String, Pair<Collection<String>, Collection<String>>> entry : config.entrySet()) {
        addAnnotationMethods(psiClass, entry.getValue().getFirst(), entry.getValue().getSecond(), entry.getKey(), result);
      }
    }

    return result;
  }
@NotNull
  public static List<PsiMethod> process(@NotNull PsiClass psiClass, @Nullable String nameHint)