private Collection getConfigResourceCollection()

in src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java [158:185]


    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();
        }
    }