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)));