String () { if (!Registry.is("show.method.base.class.in.java.file.structure")) return null; final PsiMethod method = getElement(); if (myLocation == null && method != null && !DumbService.isDumb(method.getProject())) { if (isInherited()) { return super.getLocationString(); } else { try { final MethodSignatureBackedByPsiMethod baseMethod = SuperMethodsSearch.search(method, null, true, false).findFirst(); if (baseMethod != null && !method.isEquivalentTo(baseMethod.getMethod())) { PsiMethod base = baseMethod.getMethod(); PsiClass baseClass = base.getContainingClass(); if (baseClass != null /*&& !CommonClassNames.JAVA_LANG_OBJECT.equals(baseClass.getQualifiedName())*/) { if (baseClass.getMethods().length > 1) { myLocation = baseClass.getName(); } } } } catch (IndexNotReadyException e) { //some searchers (EJB) require indices. What shall we do? } if (StringUtil.isEmpty(myLocation)) { myLocation = ""; } else { char upArrow = '\u2191'; myLocation = StartupUiUtil.getLabelFont().canDisplay(upArrow) ? upArrow + myLocation : myLocation; } } } return StringUtil.isEmpty(myLocation) ? null : myLocation; }