in src/main/java/org/apache/sling/sitemap/SitemapUtil.java [166:196]
public static Map<Resource, String> resolveSitemapRoots(@NotNull Resource topLevelSitemapRoot,
@NotNull String sitemapSelector) {
if (!isTopLevelSitemapRoot(topLevelSitemapRoot)) {
// selectors are always relative to a top level sitemap root
return Collections.emptyMap();
}
if (sitemapSelector.equals(SITEMAP_SELECTOR)) {
return Collections.singletonMap(topLevelSitemapRoot, SitemapService.DEFAULT_SITEMAP_NAME);
}
List<String> parts = Arrays.asList(sitemapSelector.split("-"));
List<String> relevantParts;
if (parts.size() == 2 && parts.get(0).equals(SITEMAP_SELECTOR) && isInteger(parts.get(1))) {
// default name with file index
return Collections.singletonMap(topLevelSitemapRoot, SitemapService.DEFAULT_SITEMAP_NAME);
} else if (parts.size() > 1 && parts.get(parts.size() - 1).equals(SITEMAP_SELECTOR)) {
// no file index part
relevantParts = parts.subList(0, parts.size() - 1);
} else if (parts.size() > 2 && parts.get(parts.size() - 2).equals(SITEMAP_SELECTOR)
&& isInteger(parts.get(parts.size() - 1))) {
// with file index part
relevantParts = parts.subList(0, parts.size() - 2);
} else {
return Collections.emptyMap();
}
Map<Resource, String> roots = new LinkedHashMap<>();
resolveSitemapRoots(topLevelSitemapRoot, relevantParts, roots);
return roots;
}