public void analyze()

in codeanalyzer/src/main/java/nl/obren/sokrates/sourcecode/analysis/files/UnitsAnalyzer.java [53:108]


    public void analyze() {
        progressFeedback.start();
        AnalysisUtils.info(textSummary, progressFeedback, "Extracting units...", start);
        this.allUnits = new UnitsExtractor().getUnits(main.getSourceFiles(), progressFeedback);

        int linesOfCode = UnitUtils.getLinesOfCode(allUnits);
        addBasicUnitMetrics(allUnits, linesOfCode);

        AnalysisUtils.detailedInfo(textSummary, progressFeedback, "  - found " + allUnits.size() + " units (" + linesOfCode + " lines of code in units)", start);

        unitsAnalysisResults.setTotalNumberOfUnits(allUnits.size());
        unitsAnalysisResults.setLinesOfCodeInUnits(linesOfCode);

        RiskDistributionStats unitSizeDistribution = UnitUtils.getUnitSizeDistribution(allUnits);
        unitsAnalysisResults.setUnitSizeRiskDistribution(unitSizeDistribution);
        printRiskDistributionStats(unitSizeDistribution, unitSizeCategoryNames, "Unit size distribution ");

        AnalysisUtils.detailedInfo(textSummary, progressFeedback, "Unit size distribution per component:", start);
        UnitUtils.getUnitSizeDistributionPerComponent(codeConfiguration.getLogicalDecompositions(), allUnits).forEach(group -> {
            List<RiskDistributionStats> componentUnitSizeDistributionStats = new ArrayList<>();
            unitsAnalysisResults.getUnitSizeRiskDistributionPerComponent().add(componentUnitSizeDistributionStats);
            group.forEach(componentUnitSizeDistribution -> {
                componentUnitSizeDistributionStats.add(componentUnitSizeDistribution);
                printRiskDistributionStats(componentUnitSizeDistribution, unitSizeCategoryNames, "Unit Size Component " + componentUnitSizeDistribution.getKey() + ": ");
            });
        });

        AnalysisUtils.detailedInfo(textSummary, progressFeedback, "Unit size distribution per extension:", start);
        UnitUtils.getUnitSizeDistributionPerExtension(allUnits).forEach(extensionUnitSizeDistribution -> {
            unitsAnalysisResults.getUnitSizeRiskDistributionPerExtension().add(extensionUnitSizeDistribution);
            printRiskDistributionStats(extensionUnitSizeDistribution, unitSizeCategoryNames, "Unit Size Extension " + extensionUnitSizeDistribution.getKey() + ": ");
        });

        RiskDistributionStats conditionalComplexityDistribution = UnitUtils.getConditionalComplexityDistribution(allUnits);
        unitsAnalysisResults.setConditionalComplexityRiskDistribution(conditionalComplexityDistribution);
        printRiskDistributionStats(UnitUtils.getConditionalComplexityDistribution(allUnits), conditionalComplexityCategoryNames, "Conditional complexity distribution: ");
        AnalysisUtils.detailedInfo(textSummary, progressFeedback, "Conditional complexity distribution per component:", start);
        UnitUtils.getConditionalComplexityDistributionPerComponent(codeConfiguration.getLogicalDecompositions(), allUnits).forEach(group -> {
            List<RiskDistributionStats> componentConditionalComplexityDistributionStats = new ArrayList<>();
            unitsAnalysisResults.getConditionalComplexityRiskDistributionPerComponent().add(componentConditionalComplexityDistributionStats);
            group.forEach(componentConditionalComplexityDistribution -> {
                componentConditionalComplexityDistributionStats.add(componentConditionalComplexityDistribution);
                printRiskDistributionStats(componentConditionalComplexityDistribution, conditionalComplexityCategoryNames, "Conditional Complexity Component " + componentConditionalComplexityDistribution.getKey() + " ");
            });
        });
        AnalysisUtils.detailedInfo(textSummary, progressFeedback, "Conditional complexity distribution per extension:", start);
        UnitUtils.getConditionalComplexityDistributionPerExtension(allUnits).forEach(extensionUnitSizeDistribution -> {
            unitsAnalysisResults.getConditionalComplexityRiskDistributionPerExtension().add(extensionUnitSizeDistribution);
            printRiskDistributionStats(extensionUnitSizeDistribution, conditionalComplexityCategoryNames, "Conditional Complexity Component " + extensionUnitSizeDistribution.getKey() + ": ");
        });

        int sampleSize = 50;
        addAllUnits(allUnits, unitsAnalysisResults);
        addLongestUnits(allUnits, unitsAnalysisResults, sampleSize);
        addMostComplexUnits(allUnits, unitsAnalysisResults, sampleSize);
    }