You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2021/07/28 11:10:25 UTC

[sling-org-apache-sling-scripting-sightly-runtime] 01/01: SLING-9968 support string conversion of arbitrary objects

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

kwin pushed a commit to branch feature/SLING-9968-improve-toString
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-runtime.git

commit c19442696f6afc12e7fbd71cefeb2b7ccda5beac
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Jul 28 13:10:14 2021 +0200

    SLING-9968 support string conversion of arbitrary objects
---
 .../java/org/apache/sling/scripting/sightly/render/ObjectModel.java  | 5 +++--
 .../org/apache/sling/scripting/sightly/render/ObjectModelTest.java   | 5 ++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/sling/scripting/sightly/render/ObjectModel.java b/src/main/java/org/apache/sling/scripting/sightly/render/ObjectModel.java
index c9dfaf4..f40e51b 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/render/ObjectModel.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/render/ObjectModel.java
@@ -246,10 +246,11 @@ public final class ObjectModel {
                 return ((Enum) object).name();
             } else if (object instanceof Optional) {
                 return toString(((Optional) object).orElse(EMPTY_STRING));
-            }
-            else {
+            } else if (object.getClass().isArray() || object instanceof Collection || object instanceof Enumeration || object instanceof Iterator || object instanceof Iterator) {
                 Collection<?> col = toCollection(object);
                 output = collectionToString(col);
+            } else {
+                output = object.toString();
             }
         }
         return output;
diff --git a/src/test/java/org/apache/sling/scripting/sightly/render/ObjectModelTest.java b/src/test/java/org/apache/sling/scripting/sightly/render/ObjectModelTest.java
index 00cf89b..1942492 100644
--- a/src/test/java/org/apache/sling/scripting/sightly/render/ObjectModelTest.java
+++ b/src/test/java/org/apache/sling/scripting/sightly/render/ObjectModelTest.java
@@ -18,6 +18,8 @@
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 package org.apache.sling.scripting.sightly.render;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -114,7 +116,7 @@ public class ObjectModelTest {
     }
 
     @Test
-    public void testToString() {
+    public void testToString() throws URISyntaxException {
         assertEquals("", ObjectModel.toString(null));
         assertEquals("1", ObjectModel.toString("1"));
         assertEquals("1", ObjectModel.toString(1));
@@ -125,6 +127,7 @@ public class ObjectModelTest {
         assertEquals("1,2,3", ObjectModel.toString(testList));
         assertEquals("1,2,3", ObjectModel.toString(testArray));
         assertEquals("1,2,3", ObjectModel.toString(testPrimitiveArray));
+        assertEquals("http://localhost/test", ObjectModel.toString(new URI("http://localhost/test")));
 
         assertEquals("", ObjectModel.toString(Optional.empty()));
         assertEquals("false", ObjectModel.toString(Optional.of(false)));