@NotNull
    private static RowIcon getIcon(@Nullable PsiMethod prototype, @Nullable PsiClass psiClass) {
      Icon methodIcon = IconUtil.getEmptyIcon(true);
      Icon overrideIcon = EmptyIcon.ICON_16;

      if (prototype != null && psiClass != null) {

        PsiMethod existing = psiClass.findMethodBySignature(prototype, false);
        if (existing != null) {
          methodIcon = existing.getIcon(Iconable.ICON_FLAG_VISIBILITY);
        }

        PsiMethod[] superMethods = prototype.findSuperMethods(psiClass);
        if (superMethods.length > 0) {
          if (!superMethods[0].hasModifierProperty(PsiModifier.ABSTRACT)) {
            overrideIcon = AllIcons.General.OverridingMethod;
          }
          else {
            overrideIcon = AllIcons.General.ImplementingMethod;
          }
        }
      }
      return IconManager.getInstance().createRowIcon(methodIcon, overrideIcon);
    }
@NotNull
    private static RowIcon getIcon(@Nullable PsiMethod prototype, @Nullable PsiClass psiClass)