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 a85b8d43c342..e70700a7bae9 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java @@ -651,28 +651,29 @@ public class OverrideImplementUtil { Collection candidates, boolean copyJavadoc, boolean insertOverrideWherePossible) { - try{ + try { int offset = editor.getCaretModel().getOffset(); if (aClass.getLBrace() == null) { PsiClass psiClass = JavaPsiFacade.getInstance(aClass.getProject()).getElementFactory().createClass("X"); aClass.addRangeAfter(psiClass.getLBrace(), psiClass.getRBrace(), aClass.getLastChild()); } - + int lbraceOffset = aClass.getLBrace().getTextOffset(); List> resultMembers; if (offset <= lbraceOffset || aClass.isEnum()) { resultMembers = new ArrayList>(); for (PsiMethodMember candidate : candidates) { - Collection prototypes = overrideOrImplementMethod(aClass, candidate.getElement(), candidate.getSubstitutor(), - copyJavadoc, insertOverrideWherePossible); - for (PsiMethod prototype : prototypes) { + Collection prototypes = + overrideOrImplementMethod(aClass, candidate.getElement(), candidate.getSubstitutor(), copyJavadoc, insertOverrideWherePossible); + List> infos = convert2GenerationInfos(prototypes); + for (PsiGenerationInfo info : infos) { PsiElement anchor = getDefaultAnchorToOverrideOrImplement(aClass, candidate.getElement(), candidate.getSubstitutor()); - PsiElement result = GenerateMembersUtil.insert(aClass, prototype, anchor, true); - resultMembers.add(createGenerationInfo((PsiMethod)result)); + info.insert(aClass, anchor, true); + resultMembers.add(info); } } } - else{ + else { List> prototypes = overrideOrImplementMethods(aClass, candidates, copyJavadoc, insertOverrideWherePossible); resultMembers = GenerateMembersUtil.insertMembersAtOffset(aClass.getContainingFile(), offset, prototypes); } @@ -681,7 +682,7 @@ public class OverrideImplementUtil { resultMembers.get(0).positionCaret(editor, true); } } - catch(IncorrectOperationException e){ + catch (IncorrectOperationException e) { LOG.error(e); } }