private List getOverlaps()

in codeanalyzer/src/main/java/nl/obren/sokrates/sourcecode/core/CodeConfiguration.java [247:269]


    private List<DerivedConcern> getOverlaps(List<Concern> concerns) {
        List<DerivedConcern> overlaps = new ArrayList<>();
        Map<String, DerivedConcern> overlapsMap = new HashMap<>();

        getMain().getSourceFiles().forEach(sourceFile -> {
            if (sourceFile.getConcerns().size() > 1) {
                sourceFile.getConcerns().forEach(concern1 -> {
                    sourceFile.getConcerns().forEach(concern2 -> {
                        if (concern1 != concern2 && concerns.contains(concern1) && concerns.contains(concern2)) {
                            Concern overlapConcern = getOverlapSourceCodeAspect(concern1, concern2, overlapsMap, overlaps);
                            if (!overlapConcern.getSourceFiles().contains(sourceFile)) {
                                overlapConcern.getSourceFiles().add(sourceFile);
                            }
                        }
                    });
                });
            }
        });

        replacePercentageInOverlapConcerns(concerns, overlapsMap);

        return overlaps;
    }