@Override @Nullable public String getGroupName(final RefElement entity) { for (RefManagerExtension extension : myExtensions.values()) { final String groupName = extension.getGroupName(entity); if (groupName != null) return groupName; } final LinkedList<String> containingDirs = new LinkedList<>(); RefEntity parent = entity.getOwner(); while (parent != null && !(parent instanceof RefDirectory)) { parent = parent.getOwner(); } while (parent instanceof RefDirectory) { containingDirs.addFirst(parent.getName()); parent = parent.getOwner(); } return containingDirs.isEmpty() ? null : StringUtil.join(containingDirs, File.separator); }
@Override @Nullable public RefClass getOwnerClass(RefElement refElement) { RefEntity parent = refElement.getOwner(); while (!(parent instanceof RefClass) && parent instanceof RefElement) { parent = parent.getOwner(); } if (parent instanceof RefClass) return (RefClass) parent; return null; }
@Override public RefClass getTopLevelClass(RefElement refElement) { RefEntity refParent = refElement.getOwner(); while (refParent != null && refParent instanceof RefElement && !(refParent instanceof RefFile)) { refElement = (RefElementImpl) refParent; refParent = refParent.getOwner(); } return refElement instanceof RefClass ? (RefClass) refElement : null; }
private static void ignoreElement( @NotNull ProblemDescriptionsProcessor processor, @NotNull RefEntity refElement) { processor.ignoreElement(refElement); if (refElement instanceof RefClass) { RefClass refClass = (RefClass) refElement; RefMethod defaultConstructor = refClass.getDefaultConstructor(); if (defaultConstructor != null) { processor.ignoreElement(defaultConstructor); return; } } RefEntity owner = refElement.getOwner(); if (owner instanceof RefElement) { processor.ignoreElement(owner); } }
public void appendLocation(final RefEntity entity, final StringBuffer buf) { RefEntity owner = entity.getOwner(); if (owner instanceof RefPackage) { buf.append(InspectionsBundle.message("inspection.export.results.package")); buf.append(HTMLComposerImpl.NBSP).append(HTMLComposerImpl.CODE_OPENING); buf.append(RefJavaUtil.getInstance().getPackageName(entity)); buf.append(HTMLComposerImpl.CODE_CLOSING); } else if (owner instanceof RefMethod) { buf.append(InspectionsBundle.message("inspection.export.results.method")); buf.append(HTMLComposerImpl.NBSP); myComposer.appendElementReference(buf, (RefElement) owner); } else if (owner instanceof RefField) { buf.append(InspectionsBundle.message("inspection.export.results.field")); buf.append(HTMLComposerImpl.NBSP); myComposer.appendElementReference(buf, (RefElement) owner); buf.append(HTMLComposerImpl.NBSP); buf.append(InspectionsBundle.message("inspection.export.results.initializer")); } else if (owner instanceof RefClass) { appendClassOrInterface(buf, (RefClass) owner, false); buf.append(HTMLComposerImpl.NBSP); myComposer.appendElementReference(buf, (RefElement) owner); } }
public void appendReferencePresentation( RefEntity refElement, final StringBuffer buf, final boolean isPackageIncluded) { if (refElement instanceof RefImplicitConstructor) { buf.append(InspectionsBundle.message("inspection.export.results.implicit.constructor")); refElement = ((RefImplicitConstructor) refElement).getOwnerClass(); } buf.append(HTMLComposerImpl.CODE_OPENING); if (refElement instanceof RefField) { RefField field = (RefField) refElement; PsiField psiField = field.getElement(); buf.append(psiField.getType().getPresentableText()); buf.append(HTMLComposerImpl.NBSP); } else if (refElement instanceof RefMethod) { RefMethod method = (RefMethod) refElement; PsiMethod psiMethod = (PsiMethod) method.getElement(); PsiType returnType = psiMethod.getReturnType(); if (returnType != null) { buf.append(returnType.getPresentableText()); buf.append(HTMLComposerImpl.NBSP); } } buf.append(HTMLComposerImpl.A_HREF_OPENING); if (myComposer.myExporter == null) { buf.append(((RefElementImpl) refElement).getURL()); } else { buf.append(myComposer.myExporter.getURL(refElement)); } buf.append("\">"); if (refElement instanceof RefClass && ((RefClass) refElement).isAnonymous()) { buf.append(InspectionsBundle.message("inspection.reference.anonymous")); } else if (refElement instanceof RefJavaElement && ((RefJavaElement) refElement).isSyntheticJSP()) { buf.append(XmlStringUtil.escapeString(refElement.getName())); } else if (refElement instanceof RefMethod) { PsiMethod psiMethod = (PsiMethod) ((RefMethod) refElement).getElement(); buf.append(psiMethod.getName()); } else { buf.append(refElement.getName()); } buf.append(HTMLComposerImpl.A_CLOSING); if (refElement instanceof RefMethod) { PsiMethod psiMethod = (PsiMethod) ((RefMethod) refElement).getElement(); appendMethodParameters(buf, psiMethod, false); } buf.append(HTMLComposerImpl.CODE_CLOSING); if (refElement instanceof RefClass && ((RefClass) refElement).isAnonymous()) { buf.append(" "); buf.append(InspectionsBundle.message("inspection.export.results.anonymous.ref.in.owner")); buf.append(" "); myComposer.appendElementReference( buf, ((RefElement) refElement.getOwner()), isPackageIncluded); } else if (isPackageIncluded) { buf.append(" ").append(HTMLComposerImpl.CODE_OPENING).append("("); myComposer.appendQualifiedName(buf, refElement.getOwner()); // buf.append(RefUtil.getPackageName(refElement)); buf.append(")").append(HTMLComposerImpl.CODE_CLOSING); } }