@NotNull
  private static <T extends PsiModifierListOwner & PsiNamedElement> String createCodeBlockText(@NotNull T psiElement,
                                                                                               @NotNull PsiMethod psiMethod,
                                                                                               @NotNull PsiType returnType,
                                                                                               PsiParameter @NotNull [] psiParameters) {
    final String paramString = Arrays.stream(psiParameters).map(PsiParameter::getName).collect(Collectors.joining(","));
    final boolean isMethodCall = psiElement instanceof PsiMethod;
    return String.format("%sthis.%s%s.%s(%s);",
                         PsiTypes.voidType().equals(returnType) ? "" : "return ",
                         psiElement.getName(),
                         isMethodCall ? "()" : "",
                         psiMethod.getName(),
                         paramString);
  }
@NotNull
  private static <T extends PsiModifierListOwner & PsiNamedElement> String createCodeBlockText(@NotNull T psiElement,
                                                                                               @NotNull PsiMethod psiMethod,
                                                                                               @NotNull PsiType returnType,
                                                                                               PsiParameter @NotNull [] psiParameters)