@Nullable
  public String getDirCoverageInformationString(
      @NotNull final PsiDirectory directory,
      @NotNull final CoverageSuitesBundle currentSuite,
      @NotNull final CoverageDataManager manager) {
    DirCoverageInfo coverageInfo = getDirCoverageInfo(directory, currentSuite);
    if (coverageInfo == null) {
      return null;
    }

    if (manager.isSubCoverageActive()) {
      return coverageInfo.coveredLineCount > 0 ? "covered" : null;
    }

    final String filesCoverageInfo = getFilesCoverageInformationString(coverageInfo);
    if (filesCoverageInfo != null) {
      final StringBuilder builder = new StringBuilder();
      builder.append(filesCoverageInfo);
      final String linesCoverageInfo = getLinesCoverageInformationString(coverageInfo);
      if (linesCoverageInfo != null) {
        builder.append(", ").append(linesCoverageInfo);
      }
      return builder.toString();
    }
    return null;
  }
  @Nullable
  public String getFileCoverageInformationString(
      @NotNull final PsiFile psiFile,
      @NotNull final CoverageSuitesBundle currentSuite,
      @NotNull final CoverageDataManager manager) {
    final VirtualFile file = psiFile.getVirtualFile();
    assert file != null;
    final String path = normalizeFilePath(file.getPath());

    final FileCoverageInfo coverageInfo = myFileCoverageInfos.get(path);
    if (coverageInfo == null) {
      return null;
    }

    if (manager.isSubCoverageActive()) {
      return coverageInfo.coveredLineCount > 0 ? "covered" : null;
    }

    return getLinesCoverageInformationString(coverageInfo);
  }