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