in reports/src/main/java/nl/obren/sokrates/reports/generators/statichtml/LogicalComponentsReportGenerator.java [84:129]
private void analyzeLogicalDecomposition(int sectionIndex, LogicalDecompositionAnalysisResults logicalDecomposition) {
report.startSection("Logical Decomposition #" + sectionIndex + ": " + logicalDecomposition.getKey().toUpperCase(), getDecompositionDescription(logicalDecomposition));
List<NumericMetric> fileCountPerExtension = logicalDecomposition.getFileCountPerComponent();
List<NumericMetric> linesOfCodePerExtension = logicalDecomposition.getLinesOfCodePerComponent();
ScopesRenderer renderer = new ScopesRenderer();
renderer.setLinesOfCodeInMain(codeAnalysisResults.getMainAspectAnalysisResults().getLinesOfCode());
renderer.setTitle("Components");
renderer.setDescription("");
renderer.setFileCountPerComponent(fileCountPerExtension);
renderer.setLinesOfCode(linesOfCodePerExtension);
renderer.setMaxFileCount(codeAnalysisResults.getMaxFileCount());
renderer.setMaxLinesOfCode(codeAnalysisResults.getMaxLinesOfCode());
List<AspectAnalysisResults> components = logicalDecomposition.getComponents();
String filePathPrefix = DataExportUtils.getComponentFilePrefix(logicalDecomposition.getKey());
renderer.setAspectsFileListPaths(components.stream().map(aspect -> aspect.getAspect().getFileSystemFriendlyName(filePathPrefix)).collect(Collectors.toList()));
renderer.renderReport(report, "The \"" + logicalDecomposition.getLogicalDecomposition().getName() + "\" logical decomposition has <b>" + logicalDecomposition.getLogicalDecomposition().getComponents().size() + "</b> components.");
List<MetaRule> metaComponents = logicalDecomposition.getLogicalDecomposition().getMetaComponents();
if (metaComponents.size() > 0) {
report.startSubSection("Meta-Rules for Componentization", "");
report.addListItem("The following explicit meta-rules for components are defined:");
describeMetaRules(metaComponents);
report.endSection();
}
report.startSubSection("Alternative Visuals", "");
report.startUnorderedList();
report.addListItem("<a href='visuals/bubble_chart_components_" + (sectionIndex) + ".html'>Bubble Chart</a>");
report.addListItem("<a href='visuals/tree_map_components_" + (sectionIndex) + ".html'>Tree Map</a>");
report.endUnorderedList();
report.endSection();
List<ComponentDependency> componentDependencies = logicalDecomposition.getComponentDependencies();
report.startSubSection("Dependencies", "Dependencies among components are <b>static</b> code dependencies among files in different components.");
if (componentDependencies != null && componentDependencies.size() > 0) {
addComponentDependenciesSection(logicalDecomposition, componentDependencies);
} else {
report.addParagraph("No component dependencies found.");
}
report.endSection();
report.endSection();
}