public List pickResources()

in src/main/java/org/apache/sling/resourcemerger/impl/picker/SearchPathBasedResourcePicker.java [60:94]


    public List<Resource> pickResources(final ResourceResolver resolver, final String relativePath,
                                        final Resource relatedResource) {
        List<Resource> relatedMappedResources = null;
        if (relatedResource instanceof MergedResource) {
            relatedMappedResources = ((MergedResource) relatedResource).getMergedResources();

            // Check if the path is the same
            if (relatedResource.getPath().equals(mergeRootPath + '/' + relativePath)) {
                return relatedMappedResources;
            }
        }

        final List<Resource> resources = new ArrayList<>();
        final String[] searchPaths = resolver.getSearchPath();
        for (int i = searchPaths.length - 1; i >= 0; i--) {
            final String basePath = searchPaths[i];
            final String fullPath = basePath + relativePath;

            int baseIndex = resources.size();
            Resource baseResource = null;
            if (relatedMappedResources != null && relatedMappedResources.size() > baseIndex) {
                baseResource = relatedMappedResources.get(baseIndex);
            }

            Resource resource = (baseResource != null) ? getFromBaseResource(resolver, baseResource, fullPath) : null;
            if (resource == null) {
                resource = resolver.getResource(fullPath);
                if (resource == null) {
                    resource = new NonExistingResource(resolver, fullPath);
                }
            }
            resources.add(resource);
        }
        return resources;
    }