void (ProjectViewNode node, PresentationData data) { final Project project = node.getProject(); if (project == null) { return; } final CoverageDataManager coverageDataManager = getCoverageDataManager(project); CoverageSuitesBundle javaSuite = getJavaSuite(coverageDataManager, project); // This decorator is applicable only to java suites if (javaSuite == null) return; final JavaCoverageAnnotator javaCovAnnotator = (JavaCoverageAnnotator) javaSuite.getAnnotator(project); final Object value = node.getValue(); PsiElement element = null; if (value instanceof PsiElement psiElement) { element = psiElement; } else if (value instanceof SmartPsiElementPointer<?> smartPointer) { element = smartPointer.getElement(); } else if (value instanceof PackageElement packageElement) { final String coverageString = javaCovAnnotator.getPackageCoverageInformationString(packageElement.getPackage(), packageElement.getModule(), coverageDataManager); data.setLocationString(coverageString); } if (element instanceof PsiClass) { final GlobalSearchScope searchScope = javaSuite.getSearchScope(project); final VirtualFile vFile = PsiUtilCore.getVirtualFile(element); if (vFile != null && searchScope.contains(vFile)) { final String qName = ((PsiClass)element).getQualifiedName(); if (qName != null) { data.setLocationString(javaCovAnnotator.getClassCoverageInformationString(qName, coverageDataManager)); } } } else if (element instanceof PsiNamedElement namedElement && // handled in CoverageProjectViewDirectoryNodeDecorator !(element instanceof PsiFile || element instanceof PsiDirectory)) { for (JavaCoverageEngineExtension extension : JavaCoverageEngineExtension.EP_NAME.getExtensions()) { final PackageAnnotator.ClassCoverageInfo info = extension.getSummaryCoverageInfo(javaCovAnnotator, namedElement); if (info != null) { data.setLocationString(JavaCoverageAnnotator.getClassCoverageInformationString(info, coverageDataManager)); break; } } } }