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

daim pushed a commit to branch OAK-11550
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 4a95187641c52fd0023ec81048ca2d02a606a783
Author: Rishabh Kumar <[email protected]>
AuthorDate: Wed Mar 5 20:17:14 2025 +0530

    OAK-11550 : added util method to replace Guava's Iterables.toStrinag()
---
 .../oak/commons/collections/IterableUtils.java     | 15 ++++++++
 .../oak/commons/collections/IterableUtilsTest.java | 41 ++++++++++++++++++++++
 2 files changed, 56 insertions(+)

diff --git 
a/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/collections/IterableUtils.java
 
b/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/collections/IterableUtils.java
index 370f66a7b6..c3541b6066 100644
--- 
a/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/collections/IterableUtils.java
+++ 
b/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/collections/IterableUtils.java
@@ -375,4 +375,19 @@ public class IterableUtils {
     public static <T> Iterable<T> limit(final Iterable<T> iterable, final int 
limitSize) {
         return 
org.apache.commons.collections4.IterableUtils.boundedIterable(iterable, 
limitSize);
     }
+
+    /**
+     * Returns a string representation of the elements of the specified 
iterable.
+     * <p>
+     * The string representation consists of a list of the iterable's elements,
+     * enclosed in square brackets ({@code "[]"}). Adjacent elements are 
separated
+     * by the characters {@code ", "} (a comma followed by a space). Elements 
are
+     * converted to strings as by {@code String.valueOf(Object)}.
+     *
+     * @param iterable  the iterable to convert to a string, may be null
+     * @return a string representation of {@code iterable}
+     */
+    public static String toString(final Iterable<?> iterable) {
+        return 
org.apache.commons.collections4.IterableUtils.toString(iterable);
+    }
 }
diff --git 
a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/collections/IterableUtilsTest.java
 
b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/collections/IterableUtilsTest.java
index c9b0efe106..916ffd6955 100644
--- 
a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/collections/IterableUtilsTest.java
+++ 
b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/collections/IterableUtilsTest.java
@@ -822,4 +822,45 @@ public class IterableUtilsTest {
 
         Assert.assertEquals(Arrays.asList(2, 3, 4, 5), list);
     }
+
+    @Test
+    public void testToStringWithNonEmptyIterable() {
+        Iterable<String> iterable = List.of("a", "b", "c");
+        String result = IterableUtils.toString(iterable);
+        Assert.assertEquals("[a, b, c]", result);
+    }
+
+    @Test
+    public void testToStringWithEmptyIterable() {
+        Iterable<String> iterable = Collections.emptyList();
+        String result = IterableUtils.toString(iterable);
+        Assert.assertEquals("[]", result);
+    }
+
+    @Test
+    public void testToStringWithNullIterable() {
+        String result = IterableUtils.toString(null);
+        Assert.assertEquals("[]", result);
+    }
+
+    @Test
+    public void testToStringWithNullElements() {
+        Iterable<String> iterable = Arrays.asList("a", null, "c");
+        String result = IterableUtils.toString(iterable);
+        Assert.assertEquals("[a, null, c]", result);
+    }
+
+    @Test
+    public void testToStringWithMixedTypeElements() {
+        Iterable<Object> iterable = Arrays.asList("a", 1, true, 3.14);
+        String result = IterableUtils.toString(iterable);
+        Assert.assertEquals("[a, 1, true, 3.14]", result);
+    }
+
+    @Test
+    public void testToStringWithSpecialCharacters() {
+        Iterable<String> iterable = Arrays.asList("a,b", "c\"d", "e\nf");
+        String result = IterableUtils.toString(iterable);
+        Assert.assertEquals("[a,b, c\"d, e\nf]", result);
+    }
 }

Reply via email to