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 5e68ed3  ISIS-2877: fixes xml based value-types
5e68ed3 is described below

commit 5e68ed3efc6caa6783f367aee834d86d64910a97
Author: Andi Huber <[email protected]>
AuthorDate: Tue Feb 1 10:07:07 2022 +0100

    ISIS-2877: fixes xml based value-types
    
    - also activating test scenarios
---
 .../valuesemantics/ChangesDtoValueSemantics.java   | 27 ++-------
 .../valuesemantics/CommandDtoValueSemantics.java   | 27 ++-------
 .../InteractionDtoValueSemantics.java              | 27 ++-------
 ...mantics.java => XmlValueSemanticsAbstract.java} | 67 +++++++++++++---------
 .../isis/testdomain/value/ValueSemanticsTest.java  |  6 +-
 .../model/valuetypes/ValueTypeExample.java         | 22 ++++---
 .../ChangesDtoValueSemanticsPrettyRender.java      | 14 ++---
 .../CommandDtoValueSemanticsPrettyRender.java      | 14 ++---
 .../InteractionDtoValueSemanticsPrettyRender.java  | 14 ++---
 ...ValueSemanticsAbstract.java => _XmlToHtml.java} | 34 ++---------
 10 files changed, 85 insertions(+), 167 deletions(-)

diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
index 1d21c0f..755a10f 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
@@ -23,49 +23,32 @@ import javax.inject.Named;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.util.schema.ChangesDtoUtils;
-import org.apache.isis.applib.value.semantics.EncoderDecoder;
-import org.apache.isis.applib.value.semantics.Renderer;
-import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.schema.chg.v2.ChangesDto;
-import org.apache.isis.schema.common.v2.ValueType;
 
 @Component
 @Named("isis.val.ChangesDtoValueSemantics")
 public class ChangesDtoValueSemantics
-extends ValueSemanticsAbstract<ChangesDto>
-implements
-    EncoderDecoder<ChangesDto>,
-    Renderer<ChangesDto> {
+extends XmlValueSemanticsAbstract<ChangesDto> {
 
     @Override
-    public Class<ChangesDto> getCorrespondingClass() {
+    public final Class<ChangesDto> getCorrespondingClass() {
         return ChangesDto.class;
     }
 
-    @Override
-    public ValueType getSchemaValueType() {
-        return UNREPRESENTED;
-    }
-
     // -- ENCODER DECODER
 
     @Override
-    public String toEncodedString(final ChangesDto changesDto) {
+    public final String toEncodedString(final ChangesDto changesDto) {
         return ChangesDtoUtils.toXml(changesDto);
     }
 
     @Override
-    public ChangesDto fromEncodedString(final String xml) {
+    public final ChangesDto fromEncodedString(final String xml) {
         return ChangesDtoUtils.fromXml(xml);
     }
 
-    // -- RENDERER
-
-    @Override
-    public String simpleTextPresentation(final Context context, final 
ChangesDto value) {
-        return render(value, ChangesDtoUtils::toXml);
-    }
+    // -- EXAMPLES
 
     @Override
     public Can<ChangesDto> getExamples() {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/CommandDtoValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/CommandDtoValueSemantics.java
index 06bc345..211ce14 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/CommandDtoValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/CommandDtoValueSemantics.java
@@ -23,49 +23,32 @@ import javax.inject.Named;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.util.schema.CommandDtoUtils;
-import org.apache.isis.applib.value.semantics.EncoderDecoder;
-import org.apache.isis.applib.value.semantics.Renderer;
-import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.schema.cmd.v2.CommandDto;
-import org.apache.isis.schema.common.v2.ValueType;
 
 @Component
 @Named("isis.val.CommandDtoValueSemantics")
 public class CommandDtoValueSemantics
-extends ValueSemanticsAbstract<CommandDto>
-implements
-    EncoderDecoder<CommandDto>,
-    Renderer<CommandDto> {
+extends XmlValueSemanticsAbstract<CommandDto> {
 
     @Override
-    public Class<CommandDto> getCorrespondingClass() {
+    public final Class<CommandDto> getCorrespondingClass() {
         return CommandDto.class;
     }
 
-    @Override
-    public ValueType getSchemaValueType() {
-        return UNREPRESENTED;
-    }
-
     // -- ENCODER DECODER
 
     @Override
-    public String toEncodedString(final CommandDto commandDto) {
+    public final String toEncodedString(final CommandDto commandDto) {
         return CommandDtoUtils.toXml(commandDto);
     }
 
     @Override
-    public CommandDto fromEncodedString(final String xml) {
+    public final CommandDto fromEncodedString(final String xml) {
         return CommandDtoUtils.fromXml(xml);
     }
 
-    // -- RENDERER
-
-    @Override
-    public String simpleTextPresentation(final Context context, final 
CommandDto value) {
-        return render(value, CommandDtoUtils::toXml);
-    }
+    // -- EXAMPLES
 
     @Override
     public Can<CommandDto> getExamples() {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/InteractionDtoValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/InteractionDtoValueSemantics.java
index 3417b21..4748db9 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/InteractionDtoValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/InteractionDtoValueSemantics.java
@@ -23,49 +23,32 @@ import javax.inject.Named;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.util.schema.InteractionDtoUtils;
-import org.apache.isis.applib.value.semantics.EncoderDecoder;
-import org.apache.isis.applib.value.semantics.Renderer;
-import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.isis.commons.collections.Can;
-import org.apache.isis.schema.common.v2.ValueType;
 import org.apache.isis.schema.ixn.v2.InteractionDto;
 
 @Component
 @Named("isis.val.InteractionDtoValueSemantics")
 public class InteractionDtoValueSemantics
-extends ValueSemanticsAbstract<InteractionDto>
-implements
-    EncoderDecoder<InteractionDto>,
-    Renderer<InteractionDto> {
+extends XmlValueSemanticsAbstract<InteractionDto> {
 
     @Override
-    public Class<InteractionDto> getCorrespondingClass() {
+    public final Class<InteractionDto> getCorrespondingClass() {
         return InteractionDto.class;
     }
 
-    @Override
-    public ValueType getSchemaValueType() {
-        return UNREPRESENTED;
-    }
-
     // -- ENCODER DECODER
 
     @Override
-    public String toEncodedString(final InteractionDto interactionDto) {
+    public final String toEncodedString(final InteractionDto interactionDto) {
         return InteractionDtoUtils.toXml(interactionDto);
     }
 
     @Override
-    public InteractionDto fromEncodedString(final String xml) {
+    public final InteractionDto fromEncodedString(final String xml) {
         return InteractionDtoUtils.fromXml(xml);
     }
 
-    // -- RENDERER
-
-    @Override
-    public String simpleTextPresentation(final Context context, final 
InteractionDto value) {
-        return render(value, InteractionDtoUtils::toXml);
-    }
+    // -- EXAMPLES
 
     @Override
     public Can<InteractionDto> getExamples() {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/XmlValueSemanticsAbstract.java
similarity index 50%
copy from 
core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
copy to 
core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/XmlValueSemanticsAbstract.java
index 1d21c0f..977ba1c 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/XmlValueSemanticsAbstract.java
@@ -18,58 +18,71 @@
  */
 package org.apache.isis.core.metamodel.valuesemantics;
 
-import javax.inject.Named;
+import java.util.Objects;
 
-import org.springframework.stereotype.Component;
-
-import org.apache.isis.applib.util.schema.ChangesDtoUtils;
 import org.apache.isis.applib.value.semantics.EncoderDecoder;
+import org.apache.isis.applib.value.semantics.OrderRelation;
 import org.apache.isis.applib.value.semantics.Renderer;
 import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
-import org.apache.isis.commons.collections.Can;
-import org.apache.isis.schema.chg.v2.ChangesDto;
 import org.apache.isis.schema.common.v2.ValueType;
 
-@Component
-@Named("isis.val.ChangesDtoValueSemantics")
-public class ChangesDtoValueSemantics
-extends ValueSemanticsAbstract<ChangesDto>
+import lombok.NonNull;
+import lombok.val;
+
+public abstract class XmlValueSemanticsAbstract<T>
+extends ValueSemanticsAbstract<T>
 implements
-    EncoderDecoder<ChangesDto>,
-    Renderer<ChangesDto> {
+    OrderRelation<T, Void>,
+    EncoderDecoder<T>,
+    Renderer<T> {
 
     @Override
-    public Class<ChangesDto> getCorrespondingClass() {
-        return ChangesDto.class;
+    public final ValueType getSchemaValueType() {
+        return ValueType.STRING;
     }
 
+    // -- ORDER RELATION
+
     @Override
-    public ValueType getSchemaValueType() {
-        return UNREPRESENTED;
+    public final Void epsilon() {
+        return null; // not used
     }
 
-    // -- ENCODER DECODER
-
     @Override
-    public String toEncodedString(final ChangesDto changesDto) {
-        return ChangesDtoUtils.toXml(changesDto);
+    public final int compare(final T a, final T b, final Void epsilon) {
+        if(a==null
+                || b==null) {
+            return Objects.equals(a, b)
+                    ? 0
+                    : a==null
+                        ? -1
+                        : 1;
+        }
+        val _a = toEncodedString(a);
+        val _b = toEncodedString(b);
+        return _a.compareTo(_b);
     }
 
     @Override
-    public ChangesDto fromEncodedString(final String xml) {
-        return ChangesDtoUtils.fromXml(xml);
+    public final boolean equals(final T a, final T b, final Void epsilon) {
+        if(a==null
+                || b==null) {
+            return Objects.equals(a, b);
+        }
+        val _a = toEncodedString(a);
+        val _b = toEncodedString(b);
+        return _a.equals(_b);
     }
 
     // -- RENDERER
 
     @Override
-    public String simpleTextPresentation(final Context context, final 
ChangesDto value) {
-        return render(value, ChangesDtoUtils::toXml);
+    public String simpleTextPresentation(final Context context, final T value) 
{
+        return render(value, v->renderXml(context, toEncodedString(v)));
     }
 
-    @Override
-    public Can<ChangesDto> getExamples() {
-        return Can.of(new ChangesDto(), new ChangesDto());
+    protected String renderXml(final @NonNull Context context, final @NonNull 
String xml) {
+        return xml;
     }
 
 }
diff --git 
a/regressiontests/stable-value/src/test/java/org/apache/isis/testdomain/value/ValueSemanticsTest.java
 
b/regressiontests/stable-value/src/test/java/org/apache/isis/testdomain/value/ValueSemanticsTest.java
index 05c905c..a7e8a10 100644
--- 
a/regressiontests/stable-value/src/test/java/org/apache/isis/testdomain/value/ValueSemanticsTest.java
+++ 
b/regressiontests/stable-value/src/test/java/org/apache/isis/testdomain/value/ValueSemanticsTest.java
@@ -89,7 +89,7 @@ class ValueSemanticsTest {
         valueSemanticsResolver.streamClassesWithValueSemantics()
         .forEach(valueType->System.err.printf("%s%n", valueType.getName()));
 
-        final Set<Class<?>> valueTypesCovered = 
valueTypeExampleProvider.streamExamples()
+        final Set<Class<?>> valueTypesCovered = 
valueTypeExampleService.streamExamples()
         .map(ValueTypeExample::getValueType)
         .collect(Collectors.toSet());
 
@@ -227,7 +227,7 @@ class ValueSemanticsTest {
 
     // -- DEPENDENCIES
 
-    @Inject ValueTypeExampleService valueTypeExampleProvider;
+    @Inject ValueTypeExampleService valueTypeExampleService;
     @Inject SpecificationLoader specLoader;
     @Inject InteractionService interactionService;
     @Inject ServiceInjector serviceInjector;
@@ -235,7 +235,7 @@ class ValueSemanticsTest {
     @Inject SchemaValueMarshaller valueMarshaller;
 
     Stream<Arguments> provideValueTypeExamples() {
-        return valueTypeExampleProvider.streamScenarios()
+        return valueTypeExampleService.streamScenarios()
                 .map(Scenario::getArguments);
     }
 
diff --git 
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/ValueTypeExample.java
 
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/ValueTypeExample.java
index 550fd35..6911027 100644
--- 
a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/ValueTypeExample.java
+++ 
b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/valuetypes/ValueTypeExample.java
@@ -429,6 +429,7 @@ public abstract class ValueTypeExample<T> {
         @Getter
         private ZonedDateTime updateValue = 
ZonedDateTime.now().plusDays(2).plusSeconds(15);
     }
+
     // -- EXAMPLES - TEMPORAL - JODA TIME
 
     @DomainObject(
@@ -542,7 +543,6 @@ public abstract class ValueTypeExample<T> {
         private Bookmark updateValue = Bookmark.parseElseFail("c:d");
     }
 
-  //TODO    OidDto
     @DomainObject(
             logicalTypeName = 
"isis.testdomain.valuetypes.ValueTypeExampleOidDto",
             nature = Nature.BEAN)
@@ -555,9 +555,9 @@ public abstract class ValueTypeExample<T> {
     }
 
     //TODO    ChangesDto
-//    @DomainObject(
-//            logicalTypeName = 
"isis.testdomain.valuetypes.ValueTypeExampleChangesDto",
-//            nature = Nature.BEAN)
+    @DomainObject(
+            logicalTypeName = 
"isis.testdomain.valuetypes.ValueTypeExampleChangesDto",
+            nature = Nature.BEAN)
     public static class ValueTypeExampleChangesDto
     extends ValueTypeExample<ChangesDto> {
         @Property @Getter @Setter
@@ -566,10 +566,9 @@ public abstract class ValueTypeExample<T> {
         private ChangesDto updateValue = new ChangesDto();
     }
 
-    //TODO    CommandDto
-//    @DomainObject(
-//            logicalTypeName = 
"isis.testdomain.valuetypes.ValueTypeExampleCommandDto",
-//            nature = Nature.BEAN)
+    @DomainObject(
+            logicalTypeName = 
"isis.testdomain.valuetypes.ValueTypeExampleCommandDto",
+            nature = Nature.BEAN)
     public static class ValueTypeExampleCommandDto
     extends ValueTypeExample<CommandDto> {
         @Property @Getter @Setter
@@ -578,10 +577,9 @@ public abstract class ValueTypeExample<T> {
         private CommandDto updateValue = new CommandDto();
     }
 
-    //TODO    InteractionDto
-//    @DomainObject(
-//            logicalTypeName = 
"isis.testdomain.valuetypes.ValueTypeExampleInteractionDto",
-//            nature = Nature.BEAN)
+    @DomainObject(
+            logicalTypeName = 
"isis.testdomain.valuetypes.ValueTypeExampleInteractionDto",
+            nature = Nature.BEAN)
     public static class ValueTypeExampleInteractionDto
     extends ValueTypeExample<InteractionDto> {
         @Property @Getter @Setter
diff --git 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/ChangesDtoValueSemanticsPrettyRender.java
 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/ChangesDtoValueSemanticsPrettyRender.java
index 212d45f..67005f6 100644
--- 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/ChangesDtoValueSemanticsPrettyRender.java
+++ 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/ChangesDtoValueSemanticsPrettyRender.java
@@ -24,8 +24,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.util.schema.ChangesDtoUtils;
-import org.apache.isis.schema.chg.v2.ChangesDto;
+import org.apache.isis.core.metamodel.valuesemantics.ChangesDtoValueSemantics;
 
 import lombok.NonNull;
 
@@ -33,16 +32,11 @@ import lombok.NonNull;
 @Named("isis.val.ChangesDtoValueSemanticsPrettyRender")
 @Order(PriorityPrecedence.EARLY)
 public class ChangesDtoValueSemanticsPrettyRender
-extends XmlValueSemanticsAbstract<ChangesDto> {
+extends ChangesDtoValueSemantics {
 
     @Override
-    public Class<ChangesDto> getCorrespondingClass() {
-        return ChangesDto.class;
-    }
-
-    @Override
-    protected String asXml(final Context context, @NonNull final ChangesDto 
value) {
-        return ChangesDtoUtils.toXml(value);
+    protected String renderXml(@NonNull final Context context, @NonNull final 
String xml) {
+        return _XmlToHtml.toHtml(xml);
     }
 
 }
diff --git 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/CommandDtoValueSemanticsPrettyRender.java
 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/CommandDtoValueSemanticsPrettyRender.java
index 0b7a877..a9ad121 100644
--- 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/CommandDtoValueSemanticsPrettyRender.java
+++ 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/CommandDtoValueSemanticsPrettyRender.java
@@ -24,8 +24,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.util.schema.CommandDtoUtils;
-import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.core.metamodel.valuesemantics.CommandDtoValueSemantics;
 
 import lombok.NonNull;
 
@@ -33,16 +32,11 @@ import lombok.NonNull;
 @Named("isis.val.CommandDtoValueSemanticsPrettyRender")
 @Order(PriorityPrecedence.EARLY)
 public class CommandDtoValueSemanticsPrettyRender
-extends XmlValueSemanticsAbstract<CommandDto> {
+extends CommandDtoValueSemantics {
 
     @Override
-    public Class<CommandDto> getCorrespondingClass() {
-        return CommandDto.class;
-    }
-
-    @Override
-    protected String asXml(final Context context, @NonNull final CommandDto 
value) {
-        return CommandDtoUtils.toXml(value);
+    protected String renderXml(@NonNull final Context context, @NonNull final 
String xml) {
+        return _XmlToHtml.toHtml(xml);
     }
 
 }
diff --git 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/InteractionDtoValueSemanticsPrettyRender.java
 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/InteractionDtoValueSemanticsPrettyRender.java
index c2cb951..37274eb 100644
--- 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/InteractionDtoValueSemanticsPrettyRender.java
+++ 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/InteractionDtoValueSemanticsPrettyRender.java
@@ -24,8 +24,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.util.schema.InteractionDtoUtils;
-import org.apache.isis.schema.ixn.v2.InteractionDto;
+import 
org.apache.isis.core.metamodel.valuesemantics.InteractionDtoValueSemantics;
 
 import lombok.NonNull;
 
@@ -33,16 +32,11 @@ import lombok.NonNull;
 @Named("isis.val.InteractionDtoValueSemanticsPrettyRender")
 @Order(PriorityPrecedence.EARLY)
 public class InteractionDtoValueSemanticsPrettyRender
-extends XmlValueSemanticsAbstract<InteractionDto> {
+extends InteractionDtoValueSemantics {
 
     @Override
-    public Class<InteractionDto> getCorrespondingClass() {
-        return InteractionDto.class;
-    }
-
-    @Override
-    protected String asXml(final Context context, @NonNull final 
InteractionDto value) {
-        return InteractionDtoUtils.toXml(value);
+    protected String renderXml(@NonNull final Context context, @NonNull final 
String xml) {
+        return _XmlToHtml.toHtml(xml);
     }
 
 }
diff --git 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/XmlValueSemanticsAbstract.java
 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/_XmlToHtml.java
similarity index 52%
rename from 
valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/XmlValueSemanticsAbstract.java
rename to 
valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/_XmlToHtml.java
index e143d45..8e409cf 100644
--- 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/XmlValueSemanticsAbstract.java
+++ 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/_XmlToHtml.java
@@ -18,42 +18,18 @@
  */
 package org.apache.isis.valuetypes.asciidoc.metamodel.semantics;
 
-import org.apache.isis.applib.value.semantics.Renderer;
-import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
-import org.apache.isis.applib.value.semantics.ValueSemanticsProvider;
-import org.apache.isis.schema.common.v2.ValueType;
 import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
 
-import lombok.NonNull;
 import lombok.val;
+import lombok.experimental.UtilityClass;
 
-/**
- *  Provides a {@link Renderer} that generates syntax highlighted XML.
- *  @implNote using ascii-doctor under the hoods
- */
-abstract class XmlValueSemanticsAbstract<T>
-extends ValueSemanticsAbstract<T>
-implements
-    Renderer<T> {
-
-    @Override
-    public ValueType getSchemaValueType() {
-        return ValueType.STRING;
-    }
-
-    // -- RENDERER
+@UtilityClass
+class _XmlToHtml {
 
-    @Override
-    public String simpleTextPresentation(final ValueSemanticsProvider.Context 
context, final T value) {
-        return render(value, xmlContainer->presentationValue(context, 
value).asHtml());
+    public String toHtml(final String xml) {
+        return asAdoc(xml).asHtml();
     }
 
-    private AsciiDoc presentationValue(final Context context, final T value) {
-        return asAdoc(asXml(context, value));
-    }
-
-    protected abstract String asXml(Context context, @NonNull T value);
-
     private AsciiDoc asAdoc(final String xml) {
         val adoc = "[source,xml]\n----\n" + xml + "\n----";
         return AsciiDoc.valueOf(adoc);

Reply via email to