This is an automated email from the ASF dual-hosted git repository.

joerghoh pushed a commit to branch SLING-11558-remove-iterator
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git

commit fb96745996a6dc5491609ea8e4a8550a75512136
Author: Jörg Hoh <[email protected]>
AuthorDate: Sat Sep 24 10:42:52 2022 +0200

    introduce LocationCollector
---
 .../internal/helper/AbstractResourceCollector.java | 11 +++++----
 .../internal/helper/LocationCollector.java         | 26 ++++++++++++++++++++++
 2 files changed, 31 insertions(+), 6 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
 
b/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
index 03c0535..4772e88 100644
--- 
a/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
+++ 
b/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
@@ -95,11 +95,10 @@ public abstract class AbstractResourceCollector {
             }
             return o1.compareTo(o2);
         });
-        final Iterator<String> locations = new LocationIterator(resourceType, 
resourceSuperType,
-                                                                
baseResourceType, resolver);
-        while (locations.hasNext()) {
-            final String location = locations.next();
-
+        
+        
+        List<String> locations = LocationCollector.getLocations(resourceType, 
resourceSuperType, baseResourceType, resolver);
+        locations.forEach(location -> {
             // get the location resource, use a synthetic resource if there
             // is no real location. There may still be children at this
             // location
@@ -111,7 +110,7 @@ public abstract class AbstractResourceCollector {
             }
             final Resource locationRes = getResource(resolver, path);
             getWeightedResources(resources, locationRes);
-        }
+        });
 
         List<Resource> result = new ArrayList<>(resources.size());
         result.addAll(resources);
diff --git 
a/src/main/java/org/apache/sling/servlets/resolver/internal/helper/LocationCollector.java
 
b/src/main/java/org/apache/sling/servlets/resolver/internal/helper/LocationCollector.java
new file mode 100644
index 0000000..ff265e4
--- /dev/null
+++ 
b/src/main/java/org/apache/sling/servlets/resolver/internal/helper/LocationCollector.java
@@ -0,0 +1,26 @@
+package org.apache.sling.servlets.resolver.internal.helper;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.sling.api.resource.ResourceResolver;
+
+public class LocationCollector {
+    
+    
+    public static List<String> getLocations(String resourceType, String 
resourceSuperType, String baseResourceType,
+            ResourceResolver resolver) {
+        
+        List<String> result = new ArrayList<>();
+        
+        final Iterator<String> locations = new LocationIterator(resourceType, 
resourceSuperType,
+                baseResourceType, resolver);
+        
+        while (locations.hasNext()) {
+            result.add(locations.next());
+        }
+        return result;
+    }
+
+}

Reply via email to