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 d573c3bce5 ISIS-3126: refactors SerializableValueSemantics into 
simpler IdStringifierForSerializable
d573c3bce5 is described below

commit d573c3bce5d43e245dadb653ee03dd6006eef9ef
Author: andi-huber <[email protected]>
AuthorDate: Fri Aug 19 22:43:42 2022 +0200

    ISIS-3126: refactors SerializableValueSemantics into simpler
    IdStringifierForSerializable
    
    - fixes broken MM
---
 .../applib/services/bookmark/IdStringifier.java    |  1 -
 .../core/metamodel/IsisModuleCoreMetamodel.java    |  5 ++-
 ...tics.java => IdStringifierForSerializable.java} | 52 +++++++++++++++-------
 .../IdStringifierForSerializable_Test.java         |  6 +--
 4 files changed, 43 insertions(+), 21 deletions(-)

diff --git 
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/IdStringifier.java
 
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/IdStringifier.java
index d9896cb441..cdb44eb3e6 100644
--- 
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/IdStringifier.java
+++ 
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/IdStringifier.java
@@ -47,7 +47,6 @@ import lombok.val;
  *
  * @since 2.0 {@index}
  */
-@SuppressWarnings("javadoc")
 public interface IdStringifier<T> {
 
     public final static char SEPARATOR = '_';
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
index 813daad727..843b306348 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
@@ -62,6 +62,7 @@ import 
org.apache.isis.core.metamodel.valuesemantics.ClobValueSemantics;
 import org.apache.isis.core.metamodel.valuesemantics.CommandDtoValueSemantics;
 import org.apache.isis.core.metamodel.valuesemantics.DoubleValueSemantics;
 import org.apache.isis.core.metamodel.valuesemantics.FloatValueSemantics;
+import 
org.apache.isis.core.metamodel.valuesemantics.IdStringifierForSerializable;
 import org.apache.isis.core.metamodel.valuesemantics.IntValueSemantics;
 import 
org.apache.isis.core.metamodel.valuesemantics.InteractionDtoValueSemantics;
 import 
org.apache.isis.core.metamodel.valuesemantics.LocalResourcePathValueSemantics;
@@ -70,7 +71,6 @@ import 
org.apache.isis.core.metamodel.valuesemantics.LongValueSemantics;
 import org.apache.isis.core.metamodel.valuesemantics.MarkupValueSemantics;
 import org.apache.isis.core.metamodel.valuesemantics.OidDtoValueSemantics;
 import org.apache.isis.core.metamodel.valuesemantics.PasswordValueSemantics;
-import 
org.apache.isis.core.metamodel.valuesemantics.SerializableValueSemantics;
 import org.apache.isis.core.metamodel.valuesemantics.ShortValueSemantics;
 import org.apache.isis.core.metamodel.valuesemantics.StringValueSemantics;
 import org.apache.isis.core.metamodel.valuesemantics.TreeNodeValueSemantics;
@@ -149,7 +149,8 @@ import org.apache.isis.core.security.IsisModuleCoreSecurity;
         JavaUtilDateValueSemantics.class,
         // Value Semantics (meta-model)
         ApplicationFeatureIdValueSemantics.class,
-        SerializableValueSemantics.class,
+        // fallback IdStringifier
+        IdStringifierForSerializable.class,
 
         // @Service's
         ObjectManagerDefault.class,
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/SerializableValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/IdStringifierForSerializable.java
similarity index 71%
rename from 
core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/SerializableValueSemantics.java
rename to 
core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/IdStringifierForSerializable.java
index 19a775dff2..1deaead849 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/SerializableValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/IdStringifierForSerializable.java
@@ -19,7 +19,6 @@
 package org.apache.isis.core.metamodel.valuesemantics;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
 
 import javax.annotation.Priority;
 import javax.inject.Inject;
@@ -28,10 +27,9 @@ import javax.inject.Named;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.PriorityPrecedence;
+import org.apache.isis.applib.services.bookmark.IdStringifier;
 import org.apache.isis.applib.services.urlencoding.UrlEncodingService;
-import 
org.apache.isis.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
 import org.apache.isis.applib.value.semantics.ValueSemanticsProvider;
-import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.resources._Serializables;
 
@@ -42,20 +40,42 @@ import lombok.NonNull;
  * is available to handle the corresponding value type.
  */
 @Component
-@Named("isis.val.SerializableValueSemantics")
+@Named("isis.val.IdStringifierForSerializable")
 @Priority(PriorityPrecedence.LAST)
-public class SerializableValueSemantics
-extends ValueSemanticsBasedOnIdStringifierEntityAgnostic<Serializable> {
+public class IdStringifierForSerializable
+implements
+    IdStringifier.EntityAgnostic<Serializable>{
 
     private final UrlEncodingService codec;
 
     @Inject
-    public SerializableValueSemantics(
+    public IdStringifierForSerializable(
             final @NonNull UrlEncodingService codec) {
-        super(Serializable.class);
         this.codec = codec;
     }
 
+//    @Override
+//    public ValueType getSchemaValueType() {
+//        return ValueType.STRING;
+//    }
+
+    @Override
+    public Class<Serializable> getCorrespondingClass() {
+        return Serializable.class;
+    }
+
+//    // -- COMPOSER
+//
+//    @Override
+//    public ValueDecomposition decompose(final Serializable value) {
+//        return decomposeAsString(value, this::enstring, ()->null);
+//    }
+//
+//    @Override
+//    public Serializable compose(final ValueDecomposition decomposition) {
+//        return composeFromString(decomposition, this::destring, ()->null);
+//    }
+
     // -- ID STRINGIFIER
 
     @Override
@@ -72,13 +92,13 @@ extends 
ValueSemanticsBasedOnIdStringifierEntityAgnostic<Serializable> {
         return destringAs(stringified, Serializable.class);
     }
 
-    @Override
-    public Can<Serializable> getExamples() {
-        return Can.of(
-                Integer.MAX_VALUE,
-                "Hallo World",
-                new BigDecimal("3.1415"));
-    }
+//    @Override
+//    public Can<Serializable> getExamples() {
+//        return Can.of(
+//                Integer.MAX_VALUE,
+//                "Hallo World",
+//                new BigDecimal("3.1415"));
+//    }
 
     // -- HELPER
 
@@ -91,4 +111,6 @@ extends 
ValueSemanticsBasedOnIdStringifierEntityAgnostic<Serializable> {
     }
 
 
+
+
 }
diff --git 
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/valuesemantics/IdStringifierForSerializable_Test.java
 
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/valuesemantics/IdStringifierForSerializable_Test.java
index b62c780834..27e323388c 100644
--- 
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/valuesemantics/IdStringifierForSerializable_Test.java
+++ 
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/valuesemantics/IdStringifierForSerializable_Test.java
@@ -27,10 +27,10 @@ import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
 
-import static org.assertj.core.api.Assertions.assertThat;
-
 import org.apache.isis.applib.services.urlencoding.UrlEncodingService;
 
+import static org.assertj.core.api.Assertions.assertThat;
+
 import lombok.Value;
 import lombok.val;
 
@@ -65,7 +65,7 @@ class IdStringifierForSerializable_Test {
     @MethodSource()
     void roundtrip(final Serializable value) {
 
-        val stringifier = new SerializableValueSemantics(codec);
+        val stringifier = new IdStringifierForSerializable(codec);
 
         String stringified = stringifier.enstring(value);
         Serializable parse = stringifier.destring(stringified);

Reply via email to