public static SQLRefReference isValidAnnoRef(PsiElement psiElement) { final Language language = psiElement.getLanguage(); final Project project = psiElement.getProject(); if (language instanceof JavaLanguage) { if (psiElement instanceof PsiModifierList) { PsiAnnotation[] annotations = ((PsiAnnotationOwner) psiElement).getAnnotations(); for (PsiAnnotation annotation : annotations) { return getValidAnnoReference(annotation, project); } } if (psiElement instanceof PsiAnnotation) { return getValidAnnoReference((PsiAnnotation) psiElement, project); } if (psiElement instanceof PsiJavaToken && ((PsiJavaToken) psiElement).getTokenType() == JavaTokenType.STRING_LITERAL) { return getValidAnnoReference(StringUtils.cleanQuote(psiElement.getText()), project); } } if (language instanceof XMLLanguage) { if (SQLRefNamingUtil.isPropitiousXmlFile(psiElement.getContainingFile())) { final boolean isXmlTokenValid = new FilterElementProcessor( new XmlTokenTypeFilter(XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN)) .execute(psiElement); if (isXmlTokenValid) { final String sqlRefKey = getSqlRefKey(psiElement); if (sqlRefKey != null) { SQLRefReference sqlRefReferenceForID = ServiceManager.getService(psiElement.getProject(), SQLRefRepository.class) .getSQLRefReferenceForID(sqlRefKey); if (sqlRefReferenceForID != null) { if (!sqlRefReferenceForID.getClassAnnoElements().isEmpty()) { return sqlRefReferenceForID; } } } } } } return null; }