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

radu pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-compiler.git


The following commit(s) were added to refs/heads/master by this push:
     new d8bf952  SLING-7304 - Add support for primitive arrays in 
ObjectModel#toString and ObjectModel#toCollection
d8bf952 is described below

commit d8bf9529bdc6f7991883beb903f175a0db16ea6c
Author: Radu Cotescu <[email protected]>
AuthorDate: Wed Dec 13 17:52:24 2017 +0100

    SLING-7304 - Add support for primitive arrays in ObjectModel#toString and 
ObjectModel#toCollection
---
 .../sling/scripting/sightly/compiler/util/ObjectModel.java    |  8 ++++++++
 .../apache/sling/scripting/sightly/util/ObjectModelTest.java  | 11 +++++++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
 
b/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
index b68ba40..1e1096f 100644
--- 
a/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
+++ 
b/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
@@ -259,6 +259,14 @@ public final class ObjectModel {
         if (object instanceof Object[]) {
             return Arrays.asList((Object[]) object);
         }
+        if (object.getClass().isArray()) {
+            int length = Array.getLength(object);
+            Collection<Object> list = new ArrayList<>();
+            for (int i = 0; i < length; i++) {
+                list.add(Array.get(object, i));
+            }
+            return list;
+        }
         if (object instanceof Collection) {
             return (Collection<Object>) object;
         }
diff --git 
a/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java 
b/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java
index 12f3f64..711dc07 100644
--- a/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java
+++ b/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java
@@ -51,8 +51,10 @@ public class ObjectModelTest {
         assertTrue(ObjectModel.toBoolean("TRUE"));
         assertTrue(ObjectModel.toBoolean("TrUE"));
         Integer[] testArray = new Integer[] {1, 2, 3};
+        int[] testPrimitiveArray = new int[] {1, 2, 3};
         List testList = Arrays.asList(testArray);
         assertTrue(ObjectModel.toBoolean(testArray));
+        assertTrue(ObjectModel.toBoolean(testPrimitiveArray));
         assertFalse(ObjectModel.toBoolean(new Integer[]{}));
         assertTrue(ObjectModel.toBoolean(testList));
         assertFalse(ObjectModel.toBoolean(Collections.emptyList()));
@@ -84,8 +86,11 @@ public class ObjectModelTest {
         assertEquals("1", ObjectModel.toString(1));
         assertEquals("ADD", ObjectModel.toString(BinaryOperator.ADD));
         Integer[] testArray = new Integer[] {1, 2, 3};
+        int[] testPrimitiveArray = new int[] {1, 2, 3};
         List testList = Arrays.asList(testArray);
         assertEquals("1,2,3", ObjectModel.toString(testList));
+        assertEquals("1,2,3", ObjectModel.toString(testArray));
+        assertEquals("1,2,3", ObjectModel.toString(testPrimitiveArray));
     }
 
     @Test
@@ -93,15 +98,17 @@ public class ObjectModelTest {
         assertTrue(ObjectModel.toCollection(null).isEmpty());
         assertTrue(ObjectModel.toCollection(new StringBuilder()).isEmpty());
         Integer[] testArray = new Integer[] {1, 2, 3};
-        List testList = Arrays.asList(testArray);
+        int[] testPrimitiveArray = new int[]{1, 2, 3};
+        List<Integer> testList = Arrays.asList(testArray);
         Map<String, Integer> map = new HashMap<String, Integer>() {{
             put("one", 1);
             put("two", 2);
         }};
         assertEquals(testList, ObjectModel.toCollection(testArray));
+        assertEquals(testList, ObjectModel.toCollection(testPrimitiveArray));
         assertEquals(testList, ObjectModel.toCollection(testList));
         assertEquals(map.keySet(), ObjectModel.toCollection(map));
-        Vector vector = new Vector(testList);
+        Vector<Integer> vector = new Vector<>(testList);
         assertEquals(testList, ObjectModel.toCollection(vector.elements()));
         assertEquals(testList, ObjectModel.toCollection(testList.iterator()));
         assertEquals(testList, ObjectModel.toCollection(new Bag<>(testArray)));

-- 
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].

Reply via email to