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 <[email protected]> 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)));
