void (PsiClass aClass, Map<MethodSignature, PsiMethod> abstracts, Map<MethodSignature, PsiMethod> finals, Map<MethodSignature, PsiMethod> concretes, Map<MethodSignature, CandidateInfo> result) { for (Map.Entry<MethodSignature, PsiMethod> entry : abstracts.entrySet()) { MethodSignature signature = entry.getKey(); PsiMethod abstractOne = entry.getValue(); PsiMethod concrete = concretes.get(signature); if (concrete == null || PsiUtil.getAccessLevel(concrete.getModifierList()) < PsiUtil.getAccessLevel(abstractOne.getModifierList()) || !abstractOne.getContainingClass().isInterface() && abstractOne.getContainingClass().isInheritor(concrete.getContainingClass(), true) || isDefaultMethod(abstractOne)) { if (finals.get(signature) == null) { PsiSubstitutor subst = OverrideImplementExploreUtil.correctSubstitutor(abstractOne, signature.getSubstitutor()); CandidateInfo info = new CandidateInfo(abstractOne, subst); result.put(signature, info); } } } /*for (final PsiMethod method : new GroovyMethodImplementor().getMethodsToImplement(aClass)) { MethodSignature signature = MethodSignatureUtil.createMethodSignature(method.getName(), method.getParameterList(), method.getTypeParameterList(), PsiSubstitutor.EMPTY, method.isConstructor()); CandidateInfo info = new CandidateInfo(method, PsiSubstitutor.EMPTY); result.put(signature, info); }*/ }