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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new ff44b1d7d2 ISIS-3127: [RO] amend emums with "enumTitle"
ff44b1d7d2 is described below

commit ff44b1d7d26b17383947ffb63d6f9389996bc019
Author: andi-huber <[email protected]>
AuthorDate: Fri Aug 19 17:35:24 2022 +0200

    ISIS-3127: [RO] amend emums with "enumTitle"
---
 .../apache/isis/testdomain/rest/JsonValueEncoderTest.java   | 13 ++++++++++---
 .../service/valuerender/JsonValueEncoderServiceDefault.java |  4 ++++
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git 
a/regressiontests/stable-rest/src/test/java/org/apache/isis/testdomain/rest/JsonValueEncoderTest.java
 
b/regressiontests/stable-rest/src/test/java/org/apache/isis/testdomain/rest/JsonValueEncoderTest.java
index e68f167b9c..05dd0ca604 100644
--- 
a/regressiontests/stable-rest/src/test/java/org/apache/isis/testdomain/rest/JsonValueEncoderTest.java
+++ 
b/regressiontests/stable-rest/src/test/java/org/apache/isis/testdomain/rest/JsonValueEncoderTest.java
@@ -38,8 +38,8 @@ import 
org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.testdomain.conf.Configuration_headless;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import 
org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleViewerRestfulObjectsJaxrsResteasy4;
-import 
org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderServiceDefault;
 import 
org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueConverter.Context;
+import 
org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderServiceDefault;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
@@ -391,17 +391,24 @@ class JsonValueEncoderTest {
 
     static enum SampleEnum {
         HALLO,
-        WORLD
+        WORLD;
+        public String title() {
+            return name().toLowerCase();
+        }
     }
 
     @Test
     void whenEnum() {
         val value = SampleEnum.HALLO;
         val representation = representationFor(value, osObj->assertEquals(
-                    JsonRepresentation.newMap("enumType", 
SampleEnum.class.getName(),
+                    JsonRepresentation.newMap(
+                            "enumType", SampleEnum.class.getName(),
                             "enumName", value.name()).toString(),
                     osObj.toString()));
 
+        // assert emum is amended with "enumTitle"
+        assertThat(representation.getString("value.enumTitle"), 
is(value.title()));
+
         assertThat(representation.getString("extensions.x-isis-format"), 
is("enum"));
     }
 
diff --git 
a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
 
b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
index c50985dad3..916f81e185 100644
--- 
a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
+++ 
b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
@@ -146,6 +146,10 @@ public class JsonValueEncoderServiceDefault implements 
JsonValueEncoderService {
                                     || simple.getType() == ValueType.CLOB
                                     || simple.getType() == ValueType.ENUM) {
                                 val decompRepr = 
JsonRepresentation.jsonAsMap(valueAsJson);
+                                // amend emums with "enumTitle"
+                                if(simple.getType() == ValueType.ENUM) {
+                                    decompRepr.mapPutString("enumTitle", 
valueAdapter.titleString());
+                                }
                                 repr.mapPutJsonRepresentation("value", 
decompRepr);
                                 appendFormats(repr, null, 
simple.getType().value(), context.isSuppressExtensions());
                             } else {

Reply via email to