@Override
  public @NotNull PsiElement createFromTemplate(@NotNull Project project,
                                                @NotNull PsiDirectory directory,
                                                String fileName,
                                                @NotNull FileTemplate template,
                                                @NotNull String templateText,
                                                @NotNull Map<String, Object> props) throws IncorrectOperationException {
    String extension = template.getExtension();
    PsiElement result = createClassOrInterface(project, directory, templateText, template.isReformatCode(), extension);
    hackAwayEmptyPackage((PsiJavaFile)result.getContainingFile(), template, props);
    return result;
  }
@Override
  public @NotNull PsiElement createFromTemplate(@NotNull Project project,
                                                @NotNull PsiDirectory directory,
                                                String fileName,
                                                @NotNull FileTemplate template,
                                                @NotNull String templateText,
                                                @NotNull Map<String, Object> props)