boolean (@NotNull PsiClass actionClass) { final PsiClass registrationType = findRegistrationType(actionClass, RegistrationCheckerUtil.RegistrationType.ACTION); if (registrationType != null) { return true; } // search code usages: 1) own CTOR calls 2) usage via "new ActionClass()" for (PsiMethod method : actionClass.getConstructors()) { final Query<PsiReference> search = MethodReferencesSearch.search(method, method.getUseScope(), true); if (search.findFirst() != null) { return true; } } final Query<PsiReference> search = ReferencesSearch.search(actionClass, actionClass.getUseScope()); for (PsiReference reference : search) { if (!(reference instanceof PsiJavaCodeReferenceElement)) continue; final PsiNewExpression newExpression = PsiTreeUtil.getParentOfType(reference.getElement(), PsiNewExpression.class); if (newExpression != null) { final PsiJavaCodeReferenceElement classReference = newExpression.getClassReference(); if (classReference != null && classReference.getQualifiedName().equals(actionClass.getQualifiedName())) { return true; } } } return false; }