public String buildOverviewFragmentTxt(
      File folder, List<Class<? extends AnalysisTool>> sortedTools) {

    StringBuilder sb = new StringBuilder();

    sb.append(String.format("%-60s %-8s ", job.getFullApplicationName(), job.getMIWGTestCase()));

    for (Class<? extends AnalysisTool> toolClass : sortedTools) {
      AnalysisOutput result = getResult(toolClass);
      if (result != null) {
        sb.append(String.format("  %11d", result.numFindings()));
      } else {
        sb.append(String.format("  %11s", "-"));
      }
    }

    sb.append(System.getProperty("line.separator"));

    return sb.toString();
  }
  public String buildOverviewFragmentHtml(File folder) throws UnsupportedEncodingException {
    StringBuilder sb = new StringBuilder();

    sb.append(
        "<div class=\"test\" tool=\""
            + job.getFullApplicationName()
            + "\" testcase=\""
            + job.getMIWGTestCase()
            + "\" ");

    for (AnalysisTool analysisTool : results.keySet()) {
      AnalysisOutput result = results.get(analysisTool);
      assert result != null;

      sb.append("data-" + analysisTool.getName() + "-ok=\"" + result.numOKs() + "\" ");
      sb.append("data-" + analysisTool.getName() + "-finding=\"" + result.numFindings() + "\" ");
    }

    sb.append(">\n");

    sb.append("<ul>\n");

    for (AnalysisTool tool : results.keySet()) {
      AnalysisOutput result = results.get(tool);
      assert result != null;

      sb.append("<li>");
      sb.append("<a href=\"" + result.getHTMLResultsLink(job) + "\">");
      sb.append(result.getHTMLResultsLink(job));
      sb.append("</a>");
      sb.append("</li>\n");
    }

    sb.append("</ul>\n");

    sb.append("</div>\n");

    String html = sb.toString();

    return html;
  }