private void deleteChildrenNotInCollection()

in src/main/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategy.java [225:243]


    private void deleteChildrenNotInCollection(Resource resource, ConfigurationCollectionPersistData data) {
        ResourceResolver resourceResolver = resource.getResourceResolver();

        Set<String> collectionItemNames = new HashSet<>();
        for (ConfigurationPersistData item : data.getItems()) {
            collectionItemNames.add(item.getCollectionItemName());
        }

        try {
            for (Resource child : resource.getChildren()) {
                if (!collectionItemNames.contains(child.getName())) {
                    log.trace("! Delete resource {}", child.getPath());
                    resourceResolver.delete(child);
                }
            }
        } catch (PersistenceException ex) {
            throw convertPersistenceException("Unable to remove children from " + resource.getPath(), ex);
        }
    }