boolean (@NotNull PsiElement element, @NotNull PsiFile containingFile) { Kind kind = getKindEnum(containingFile); switch (kind) { case CLASS_NAME_KIND: case CLASS_IN_QUALIFIED_NEW_KIND: if (!(element instanceof PsiClass)) return false; break; case CLASS_FQ_NAME_KIND: { if (!(element instanceof PsiClass)) return false; String qName = ((PsiClass)element).getQualifiedName(); return qName != null && qName.equals(getCanonicalText(false, null, containingFile)); } case PACKAGE_NAME_KIND: { if (!(element instanceof PsiPackage)) return false; String qName = ((PsiPackage)element).getQualifiedName(); return qName.equals(getCanonicalText(false, null, containingFile)); } case CLASS_OR_PACKAGE_NAME_KIND: if (element instanceof PsiPackage) { String qName = ((PsiPackage)element).getQualifiedName(); return qName.equals(getCanonicalText(false, null, containingFile)); } if (element instanceof PsiClass) { PsiElement nameElement = getReferenceNameElement(); if (nameElement == null) return false; String name = ((PsiClass)element).getName(); if (name == null) return false; return nameElement.textMatches(name) && containingFile.getManager().areElementsEquivalent(resolve(), element); } return false; case CLASS_FQ_OR_PACKAGE_NAME_KIND: if (element instanceof PsiClass) { String qName = ((PsiClass)element).getQualifiedName(); if (qName != null && qName.equals(getCanonicalText(false, null, containingFile))) { return !PsiUtil.isFromDefaultPackage((PsiClass)element) || PsiTreeUtil.getParentOfType(this, PsiImportStatementBase.class) == null; } } if (element instanceof PsiPackage) { String qName = ((PsiPackage)element).getQualifiedName(); return qName.equals(getCanonicalText(false, null, containingFile)); } return false; default: throw new IllegalArgumentException("Unexpected kind: " + kind); } ASTNode referenceNameElement = getReferenceNameNode(); if (referenceNameElement == null || referenceNameElement.getElementType() != JavaTokenType.IDENTIFIER) return false; String name = ((PsiClass)element).getName(); return name != null && referenceNameElement.getText().equals(name) && containingFile.getManager().areElementsEquivalent(resolve(), element); }