in src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerImpl.java [95:122]
private Map<String, SitemapGenerator> consolidateGenerators(Resource sitemapRoot,
Function<SitemapGenerator, Function<Resource, Set<String>>> namesProvider) {
Map<String, SitemapGenerator> consolidatedGenerators = new HashMap<>();
for (SitemapGenerator generator : this.generators) {
Set<String> providedNames = namesProvider.apply(generator).apply(sitemapRoot);
Set<String> names = new HashSet<>(providedNames);
if (names.removeAll(consolidatedGenerators.keySet()) && LOG.isDebugEnabled()) {
String alreadyGenerated = String.join(",", consolidatedGenerators.keySet());
String provided = String.join(",", providedNames);
LOG.debug("Removed duplicated names. Already generated: '{}', provided by {}: '{}'",
alreadyGenerated, generator.getClass().getName(), provided);
}
if (names.isEmpty()) {
LOG.debug("Skipping {} as it did not provide any names for '{}'", generator.getClass().getName(),
sitemapRoot.getPath());
continue;
}
for (String name : names) {
consolidatedGenerators.put(name, generator);
}
}
return consolidatedGenerators;
}