public static void processMethod(PsiClass aClass,
                                   boolean skipImplemented,
                                   Map<MethodSignature, PsiMethod> abstracts,
                                   Map<MethodSignature, PsiMethod> finals,
                                   Map<MethodSignature, PsiMethod> concretes,
                                   HierarchicalMethodSignature signature, PsiMethod method) {
    PsiUtilCore.ensureValid(method);

    if (GrModifierListUtil.hasCodeModifierProperty(method, PsiModifier.STATIC) || GrModifierListUtil.hasCodeModifierProperty(method, PsiModifier.FINAL) || GrModifierListUtil.hasCodeModifierProperty(method, PsiModifier.PRIVATE)) return;
    PsiClass hisClass = method.getContainingClass();
    if (hisClass == null) return;
    // filter non-immediate super constructors
    if (method.isConstructor() && (!aClass.isInheritor(hisClass, false) || aClass instanceof PsiAnonymousClass || aClass.isEnum())) {
      return;
    }
    // filter already implemented
    if (skipImplemented) {
      PsiMethod implemented = MethodSignatureUtil.findMethodBySignature(aClass, signature, false);
      if (implemented != null && !(implemented instanceof GrTraitMethod) && !(implemented instanceof GrLightMethodBuilder)) {
        return;
      }
    }

    if (method.hasModifierProperty(PsiModifier.FINAL)) {
      finals.put(signature, method);
      return;
    }

    Map<MethodSignature, PsiMethod> map = method.hasModifierProperty(PsiModifier.ABSTRACT) ? abstracts : concretes;
    fillMap(signature, method, map);
    if (isDefaultMethod(method)) {
      fillMap(signature, method, concretes);
    }
  }
public static void processMethod(PsiClass aClass,
                                   boolean skipImplemented,
                                   Map<MethodSignature, PsiMethod> abstracts,
                                   Map<MethodSignature, PsiMethod> finals,
                                   Map<MethodSignature, PsiMethod> concretes,
                                   HierarchicalMethodSignature signature, PsiMethod method)