private boolean allOtherExportersNonDefining()

in src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckApiRegionsCrossFeatureDups.java [119:143]


    private boolean allOtherExportersNonDefining(PackageInfo pi, FeatureDescriptor f, Set<String> definingFeatures) {
        List<ArtifactId> declaringFeatures = new ArrayList<>();

        for (BundleDescriptor bd : f.getBundleDescriptors()) {
            if (bd.getExportedPackages().contains(pi)) {
                declaringFeatures.addAll(Arrays.asList(bd.getArtifact().getFeatureOrigins(f.getFeature().getId())));
            }
        }

        for (ArtifactId feature : declaringFeatures) {
            for (String definingFeature : definingFeatures) {
                if (definingFeature.endsWith("*")) {
                    String prefix = definingFeature.substring(0, definingFeature.length() - 1);
                    if (feature.toMvnId().startsWith(prefix)) {
                        return false;
                    }
                } else {
                    if (feature.toMvnId().equals(definingFeature)) {
                        return false;
                    }
                }
            }
        }
        return true;
    }