void (PsiJavaCodeReferenceElement reference) { final PsiElement element = reference.resolve(); if (!(element instanceof PsiClass referencedClass)) { return; } for (PsiElement importTarget : myImportTargets) { if (importTarget instanceof PsiPackage aPackage) { if (referencedClass.getContainingClass() != null) { return; } final PsiFile file = referencedClass.getContainingFile(); if (!(file instanceof PsiJavaFile javaFile)) { return; } final String packageName = aPackage.getQualifiedName(); final String filePackage = javaFile.getPackageName(); if (filePackage.equals(packageName)) { addReference(referencedClass, reference); } } else if (importTarget instanceof PsiClass aClass) { final String name = aClass.getQualifiedName(); if (name == null) { return; } if (!myOnDemand) { if (name.equals(referencedClass.getQualifiedName())) { addReference(referencedClass, reference); } } else { final PsiClass containingClass = referencedClass.getContainingClass(); if (containingClass == null) { return; } if (name.equals(containingClass.getQualifiedName())) { addReference(referencedClass, reference); } } } } }