private Collection getConfigResourceCollection()

in src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java [169:197]


    private <T> Collection<T> getConfigResourceCollection(String configName, Class<T> clazz, Converter<T> converter) {
        if (this.contentResource != null) {
            validateConfigurationName(configName);

            // get all possible colection parent config names
            Collection<String> collectionParentConfigNames =
                    configurationPersistenceStrategy.getAllCollectionParentConfigNames(configName);
            List<Iterator<Resource>> resourceInheritanceChains = new ArrayList<>();
            for (String collectionParentConfigName : collectionParentConfigNames) {
                Collection<Iterator<Resource>> result =
                        this.configurationResourceResolvingStrategy.getResourceCollectionInheritanceChain(
                                this.contentResource, configBucketNames, collectionParentConfigName);
                if (result != null) {
                    resourceInheritanceChains.addAll(result);
                }
            }

            final Collection<T> result = new ArrayList<>();
            for (final Iterator<Resource> resourceInheritanceChain : resourceInheritanceChains) {
                final T obj = convert(resourceInheritanceChain, clazz, converter, configName, true);
                if (obj != null) {
                    result.add(obj);
                }
            }
            return result;
        } else {
            return Collections.emptyList();
        }
    }