public Collection deleteSitemaps()

in src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java [279:308]


    public Collection<String> deleteSitemaps(@NotNull Resource sitemapRoot, @NotNull String name,
            Predicate<SitemapStorageInfo> storageInfoPredicate) throws IOException {
        Collection<SitemapStorageInfo> storageInfo = getSitemaps(sitemapRoot, Collections.singleton(name));
        Iterator<SitemapStorageInfo> toDelete = storageInfo.stream().filter(storageInfoPredicate).iterator();

        if (!toDelete.hasNext()) {
            // nothing to delete according to the given predicate
            return Collections.emptyList();
        }

        try (ResourceResolver resolver = resourceResolverFactory.getServiceResourceResolver(AUTH)) {
            List<String> result = new ArrayList<>(storageInfo.size());
            List<Event> events = new ArrayList<>(storageInfo.size());

            while (toDelete.hasNext()) {
                String path = toDelete.next().getPath();
                Resource resource = resolver.getResource(path);
                if (resource != null) {
                    resolver.delete(resource);
                    result.add(path);
                    events.add(newPurgeEvent(path));
                }
            }
            resolver.commit();
            events.forEach(eventAdmin::postEvent);
            return result;
        } catch (LoginException | PersistenceException ex) {
            throw new IOException("Failed to delete sitemaps: " + ex.getMessage(), ex);
        }
    }