public void renderSourceCodeFor()

in report-builder/src/jetbrains/coverage/report/idea/IDEACoverageData.java [77:103]


  public void renderSourceCodeFor(@NotNull ClassInfo aClazz, @NotNull CoverageCodeRenderer renderer) {
    IDEACoverageClassInfo idea = (IDEACoverageClassInfo) aClazz;

    final CharSequence source = obtainSourceCode(idea);
    if (source == null) return;

    Collection<ClassData> data = idea.getClassDataWithInternal();
    Map<Integer, CoverageStatus> lines = new TreeMap<Integer, CoverageStatus>();

    for (ClassData clazz : data) {
      final LineData[] linesArray = (LineData[]) clazz.getLines();
      if (linesArray == null) continue;
      for (LineData o : linesArray) {
        if (o != null) {
          lines.put(o.getLineNumber(), CoverageStatus.merge(lines.get(o.getLineNumber()), convertToLineCoverage(o)));
        }
      }
    }

    int lineNum = 0;
    for (CharSequence line : jetbrains.coverage.report.impl.StringUtil.getLines(source)) {
      lineNum++;

      renderer.writeCodeLine(lineNum, line, lines.get(lineNum));
    }
    renderer.codeWriteFinished();
  }