diff --git a/java/java-impl/src/com/intellij/ide/actions/CreateClassAction.java b/java/java-impl/src/com/intellij/ide/actions/CreateClassAction.java index 570efa1de671..907779528bf8 100644 --- a/java/java-impl/src/com/intellij/ide/actions/CreateClassAction.java +++ b/java/java-impl/src/com/intellij/ide/actions/CreateClassAction.java @@ -83,6 +83,11 @@ public class CreateClassAction extends JavaCreateTemplateInPackageAction extend @Nullable private T checkOrCreate(String newName, PsiDirectory directory, String templateName) throws IncorrectOperationException { PsiDirectory dir = directory; - String className = newName; - - final String extension = StringUtil.getShortName(templateName); - if (StringUtil.isNotEmpty(extension)) { - className = StringUtil.trimEnd(className, "." + extension); - } + String className = removeExtension(templateName, newName); if (className.contains(".")) { String[] names = className.split("\\."); @@ -110,6 +104,14 @@ public abstract class CreateTemplateInPackageAction extend return doCreate(dir, className, templateName); } + protected String removeExtension(String templateName, String className) { + final String extension = StringUtil.getShortName(templateName); + if (StringUtil.isNotEmpty(extension)) { + className = StringUtil.trimEnd(className, "." + extension); + } + return className; + } + @Nullable protected abstract T doCreate(final PsiDirectory dir, final String className, String templateName) throws IncorrectOperationException;