diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java index 38a793715ba2..03355f63ce99 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java @@ -301,8 +301,13 @@ public class OverrideImplementUtil extends OverrideImplementExploreUtil { @NotNull public static String callSuper(PsiMethod superMethod, PsiMethod overriding) { + return callSuper(superMethod, overriding, true); + } + + @NotNull + private static String callSuper(PsiMethod superMethod, PsiMethod overriding, boolean prependReturn) { @NonNls StringBuilder buffer = new StringBuilder(); - if (!superMethod.isConstructor() && !PsiType.VOID.equals(superMethod.getReturnType())) { + if (prependReturn && !superMethod.isConstructor() && !PsiType.VOID.equals(superMethod.getReturnType())) { buffer.append("return "); } buffer.append("super"); @@ -350,6 +355,7 @@ public class OverrideImplementUtil extends OverrideImplementExploreUtil { properties.setProperty(FileTemplate.ATTRIBUTE_RETURN_TYPE, returnType.getPresentableText()); properties.setProperty(FileTemplate.ATTRIBUTE_DEFAULT_RETURN_VALUE, PsiTypesUtil.getDefaultValueOfType(returnType)); properties.setProperty(FileTemplate.ATTRIBUTE_CALL_SUPER, callSuper(originalMethod, result)); + properties.setProperty(FileTemplate.ATTRIBUTE_PLAIN_CALL_SUPER, callSuper(originalMethod, result, false)); JavaTemplateUtil.setClassAndMethodNameProperties(properties, targetClass, result); JVMElementFactory factory = JVMElementFactories.getFactory(targetClass.getLanguage(), originalMethod.getProject()); diff --git a/platform/lang-impl/src/com/intellij/ide/fileTemplates/FileTemplate.java b/platform/lang-impl/src/com/intellij/ide/fileTemplates/FileTemplate.java index 7e7366cd2211..35a4409b1105 100644 --- a/platform/lang-impl/src/com/intellij/ide/fileTemplates/FileTemplate.java +++ b/platform/lang-impl/src/com/intellij/ide/fileTemplates/FileTemplate.java @@ -42,6 +42,7 @@ public interface FileTemplate extends Cloneable { String ATTRIBUTE_RETURN_TYPE = "RETURN_TYPE"; String ATTRIBUTE_DEFAULT_RETURN_VALUE = "DEFAULT_RETURN_VALUE"; String ATTRIBUTE_CALL_SUPER = "CALL_SUPER"; + String ATTRIBUTE_PLAIN_CALL_SUPER = "PLAIN_CALL_SUPER"; String ATTRIBUTE_CLASS_NAME = "CLASS_NAME"; String ATTRIBUTE_SIMPLE_CLASS_NAME = "SIMPLE_CLASS_NAME"; diff --git a/resources-en/src/fileTemplates/code/Overridden Method Body.java.html b/resources-en/src/fileTemplates/code/Overridden Method Body.java.html index d13917303afd..5f6b7cc4c281 100644 --- a/resources-en/src/fileTemplates/code/Overridden Method Body.java.html +++ b/resources-en/src/fileTemplates/code/Overridden Method Body.java.html @@ -21,6 +21,12 @@ for other methods - return super.method_name(); with or without parameters + + ${PLAIN_CALL_SUPER} +   + a super method call, super.method_name(); with or without parameters; + + ${RETURN_TYPE}