void writeConfigurationCollection()

in src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationPersistHelper.java [86:120]


    void writeConfigurationCollection(
            @NotNull String configName, @NotNull Collection<@NotNull Map<String, Object>> values) {
        // split each collection item map in it's parts
        Map<String, ConfigurationDataParts> partsCollection = new LinkedHashMap<>();
        int index = 0;
        for (Map<String, Object> map : values) {
            partsCollection.put("item" + (index++), new ConfigurationDataParts(map));
        }

        // write properties of main configuration collection
        List<ConfigurationPersistData> items = partsCollection.entrySet().stream()
                .map(entry ->
                        new ConfigurationPersistData(entry.getValue().getValues()).collectionItemName(entry.getKey()))
                .collect(Collectors.toList());
        configManager.persistConfigurationCollection(
                contextResource, configName, new ConfigurationCollectionPersistData(items));

        // write nested configuration and nested configuration collections
        for (Map.Entry<String, ConfigurationDataParts> entry : partsCollection.entrySet()) {
            String itemName = entry.getKey();
            ConfigurationDataParts parts = entry.getValue();
            for (Map.Entry<String, Map<String, Object>> nestedMap :
                    parts.getMaps().entrySet()) {
                writeConfiguration(
                        getNestedCollectionItemConfigName(configName, itemName, nestedMap.getKey()),
                        nestedMap.getValue());
            }
            for (Map.Entry<String, Collection<Map<String, Object>>> nestedCollection :
                    parts.getCollections().entrySet()) {
                writeConfigurationCollection(
                        getNestedCollectionItemConfigName(configName, itemName, nestedCollection.getKey()),
                        nestedCollection.getValue());
            }
        }
    }