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 {