void (PsiClass parent, boolean implemented, CompletionResultSet result, Set<? super MethodSignature> addedSignatures, boolean generateDefaultMethods) { for (CandidateInfo candidate : OverrideImplementExploreUtil.getMethodsToOverrideImplement(parent, implemented)) { PsiMethod baseMethod = (PsiMethod)candidate.getElement(); PsiClass baseClass = baseMethod.getContainingClass(); PsiSubstitutor substitutor = candidate.getSubstitutor(); if (!baseMethod.isConstructor() && baseClass != null && addedSignatures.add(baseMethod.getSignature(substitutor))) { result.addElement( createOverridingLookupElement(implemented, baseMethod, baseClass, substitutor, generateDefaultMethods, parent, null)); if (GenerateEqualsHandler.hasNonStaticFields(parent)) { if (MethodUtils.isEquals(baseMethod) || MethodUtils.isHashCode(baseMethod)) { result.addElement( createOverridingLookupElement(implemented, baseMethod, baseClass, substitutor, generateDefaultMethods, parent, context -> { new GenerateEqualsHandler().invoke(context.getProject(), context.getEditor(), context.getFile()); })); } else if (MethodUtils.isToString(baseMethod)) { result.addElement( createOverridingLookupElement(implemented, baseMethod, baseClass, substitutor, generateDefaultMethods, parent, context -> { new GenerateToStringActionHandlerImpl().invoke(context.getProject(), context.getEditor(), context.getFile()); })); } } } } }