in reports/src/main/java/nl/obren/sokrates/reports/utils/ScopesRenderer.java [242:307]
public void renderDetails(RichTextReport report, boolean renderTitle) {
updateCountVariables();
if (renderTitle) {
report.addHtmlContent("<h3>" + title + "</h3>");
}
boolean criteriaDefined = aspect != null && aspect.getSourceFileFilters().size() > 0;
if (criteriaDefined) {
report.startUnorderedList();
report.addListItem("The following criteria are used to filter files:");
report.startUnorderedList();
aspect.getSourceFileFilters().forEach(filter -> report.addListItem(describeFilters(filter)));
report.endUnorderedList();
report.endUnorderedList();
}
if (filesCount == 0) {
report.startUnorderedList();
report.addListItem("There are no \"" + title.toLowerCase() + "\" files.");
report.endUnorderedList();
return;
}
if (StringUtils.isNotBlank(description)) {
report.startUnorderedList();
report.addListItem(description);
report.endUnorderedList();
}
report.startUnorderedList();
if (criteriaDefined) {
String filesFragment;
String filesPhrase = filesCount == 1 ? "file" : "files";
if (StringUtils.isNotBlank(filesListPath)) {
filesFragment = "<a href='../data/text/" + filesListPath + "'><b>" + filesCount + "</b> " + filesPhrase + "</a>";
} else {
filesFragment = "<b>" + filesCount + "</b> " + filesPhrase;
}
report.addListItem(filesFragment + " match" + (filesCount == 1 ? "es" : "") + " defined criteria (" +
"<b>" + RichTextRenderingUtils.renderNumber(linesCount) + "</b> lines of code, "
+ "<b>" + RichTextRenderingUtils.renderNumber(100.0 * linesCount / linesOfCodeInMain) + "%</b> vs. main code)"
+ (fileCountPerComponent.size() == 1 ? ". All matches are in " + fileCountPerComponent.get(0).getName() + " files." : ":"));
report.startUnorderedList();
if (fileCountPerComponent.size() > 1) {
for (int i = 0; i < fileCountPerComponent.size(); i++) {
NumericMetric fileCountMetric = fileCountPerComponent.get(i);
NumericMetric linesOfCodeMetric = linesOfCode.get(i);
report.addListItem("<b>" + RichTextRenderingUtils.renderNumber(fileCountMetric.getValue().intValue()) + "</b>"
+ " " + fileCountMetric.getName() + " files"
+ " (<b>" + RichTextRenderingUtils.renderNumber(linesOfCodeMetric.getValue().intValue()) + "</b> lines of code)");
}
}
report.endUnorderedList();
if (totalNumberOfRegexMatches > 0) {
report.addListItem(totalNumberOfRegexMatches == 1
? "<b>1</b> line matches the content pattern."
: "<b>" + RichTextRenderingUtils.renderNumber(totalNumberOfRegexMatches) + "</b> lines match the content pattern.");
}
} else {
report.addListItem("<b>" + RichTextRenderingUtils.renderNumber(filesCount) + "</b> files, " +
"<b>" + RichTextRenderingUtils.renderNumber(linesCount) + "</b> lines of code ("
+ "<b>" + RichTextRenderingUtils.renderNumber(100.0 * linesCount / maxLinesOfCode) + "%</b> vs. main code).");
}
report.endUnorderedList();
}