protected void execute()

in src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckApiRegionsDuplicates.java [42:67]


    protected void execute(ApiRegions apiRegions, AnalyserTaskContext ctx) throws Exception {
        for (int i = 0; i < apiRegions.listRegions().size(); i++) {
            ApiRegion sourceRegion = apiRegions.listRegions().get(i);
            List<ApiRegion> targetRegions = apiRegions.listRegions().subList(i + 1, apiRegions.listRegions().size());

            for (ApiRegion targetRegion : targetRegions) {
                if (sourceRegion.equals(targetRegion)) {
                    continue;
                }

                Set<String> intersection = calculateIntersection(sourceRegion, targetRegion);
                if (!intersection.isEmpty()) {
                    Formatter formatter = new Formatter();
                    formatter.format("Regions '%s' and '%s' defined in feature '%s' declare both %s package(s):%n",
                            sourceRegion.getName(), targetRegion.getName(),
                                     ctx.getFeature().getId(),
                                     intersection.size());
                    intersection.forEach(api -> formatter.format(" * %s%n", api));

                    ctx.reportError(formatter.toString());

                    formatter.close();
                }
            }
        }
    }