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 2f0f4d6ec3 ISIS-3119: convert remaining IdStringifiers to
ValueSemantics Providers
2f0f4d6ec3 is described below
commit 2f0f4d6ec3a316c9ca71c1f95a7403f3b0cd55a3
Author: Andi Huber <[email protected]>
AuthorDate: Thu Aug 11 13:25:19 2022 +0200
ISIS-3119: convert remaining IdStringifiers to ValueSemantics Providers
---
.../applib/services/bookmark/IdStringifier.java | 71 ++++++++--------------
.../ValueSemanticsBasedOnIdStringifier.java | 13 ++--
...IdStringifierWithTargetEntityClassSupport.java} | 19 +++---
.../idstringifier/IdStringifierLookupService.java | 12 +++-
.../IsisModulePersistenceJdoDatanucleus.java | 68 ++++++++++-----------
.../metamodel/facets/entity/JdoEntityFacet.java | 2 +-
.../{applib => }/ByteArrayBlobRdbmsMapping.java | 2 +-
.../applib => valuemappings}/IsisBlobMapping.java | 2 +-
.../applib => valuemappings}/IsisClobMapping.java | 2 +-
.../JdoByteIdValueSemantics.java} | 9 +--
.../JdoByteIdentityValueSemantics.java} | 9 +--
.../JdoCharIdValueSemantics.java} | 10 +--
.../JdoCharIdentityValueSemantics.java} | 10 +--
.../JdoDatastoreIdImplValueSemantics.java} | 9 +--
.../JdoDatastoreIdValueSemantics.java} | 12 ++--
.../JdoDatastoreUniqueLongIdValueSemantics.java} | 9 +--
.../JdoIntIdValueSemantics.java} | 10 +--
.../JdoIntIdentityValueSemantics.java} | 9 +--
.../JdoLongIdValueSemantics.java} | 10 +--
.../JdoLongIdentityValueSemantics.java} | 9 +--
.../JdoObjectIdValueSemantics.java} | 9 +--
.../JdoObjectIdentityValueSemantics.java} | 9 +--
.../JdoShortIdValueSemantics.java} | 10 +--
.../JdoShortIdentityValueSemantics.java} | 9 +--
.../JdoStringIdValueSemantics.java} | 10 +--
.../JdoStringIdentityValueSemantics.java} | 10 +--
.../jdo/datanucleus/src/main/resources/plugin.xml | 8 +--
.../oid/IdStringifierForByteIdentity_Test.java | 4 +-
.../oid/IdStringifierForCharIdentity_Test.java | 4 +-
...erForDatastoreId_DatastoreIdImpl_long_Test.java | 4 +-
...atastoreId_DatastoreUniqueLongId_long_Test.java | 6 +-
...DatastoreId_DatastoreUniqueLongId_str_Test.java | 6 +-
.../oid/IdStringifierForIntId_Test.java | 6 +-
.../oid/IdStringifierForIntIdentity_Test.java | 4 +-
.../oid/IdStringifierForLongId_Test.java | 6 +-
.../oid/IdStringifierForLongIdentity_Test.java | 4 +-
.../oid/IdStringifierForObjectIdentity_Test.java | 4 +-
.../oid/IdStringifierForShortIdentity_Test.java | 4 +-
.../oid/IdStringifierForStringIdentity_Test.java | 4 +-
.../jpa/integration/entity/JpaEntityFacet.java | 2 +-
40 files changed, 209 insertions(+), 211 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 04c8e96033..5b0a0d0f5e 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
@@ -20,8 +20,6 @@
package org.apache.isis.applib.services.bookmark;
-import org.springframework.util.ClassUtils;
-
import org.apache.isis.commons.internal.assertions._Assert;
import org.apache.isis.commons.internal.exceptions._Exceptions;
@@ -52,30 +50,11 @@ public interface IdStringifier<T> {
Class<T> getCorrespondingClass();
-// /**
-// * Whether this {@link IdStringifier} is able to {@link
#enstring(Object)} or {@link #destring(String, Class)} values
-// * of this type.
-// *
-// * <p>
-// * Even though some implementations also require the owning entity type
in order to {@link #destring(String, Class)},
-// * we do not consider that as part of this function; we assume that the
entity type will be provided
-// * when necessary (by the JDO entity facet, in fact). This is
sufficient.
-// * </p>
-// *
-// * @param candidateValueClass
-// */
- @Deprecated
- default boolean handles(final @NonNull Class<?> candidateValueClass) {
- return getCorrespondingClass()
-
.isAssignableFrom(ClassUtils.resolvePrimitiveIfNecessary(candidateValueClass));
- }
-
/**
- * Convert the value (which will be of the same type as is {@link
#handles(Class) handled} into a string
- * representation.
+ * Convert the value (which will be of the same type as returned by {@link
#getCorrespondingClass()}
+ * into a string representation.
*
* @see #destring(String)
- * @see #handles(Class)
*/
String enstring(@NonNull T value);
@@ -87,7 +66,26 @@ public interface IdStringifier<T> {
*/
T destring(@NonNull String stringified);
- abstract class Abstract<T> implements IdStringifier<T> {
+
+ interface SupportingTargetEntityClass<T> extends IdStringifier<T> {
+ /**
+ * Convert a string representation of the identifier (as returned by
{@link #enstring(Object)}) into an object
+ * that can be used to retrieve.
+ *
+ * @param stringified - as returned by {@link #enstring(Object)}
+ * @param targetEntityClass - the class of the target entity, eg
<code>Customer</code>. For both JDO and JPA,
+ * we always have this information
available, and is needed (at least) by the JDO
+ * implementations of application
primary keys using built-ins, eg <code>LongIdentity</code>.
+ */
+ T destring(@NonNull String stringified, @NonNull Class<?>
targetEntityClass);
+
+ @Override
+ default T destring(@NonNull final String stringified) {
+ throw _Exceptions.unsupportedOperation();
+ }
+ }
+
+ abstract class Abstract<T> implements SupportingTargetEntityClass<T> {
public final static char SEPARATOR = '_';
@@ -99,19 +97,13 @@ public interface IdStringifier<T> {
protected Abstract(
final @NonNull Class<T> correspondingClass) {
-
- _Assert.assertFalse(correspondingClass.isPrimitive());
-
+ _Assert.assertFalse(correspondingClass.isPrimitive(),
+ ()->String.format("not allowed to be initialzed with a
primitive class (%s), "
+ + "use the boxed variant instead",
+ correspondingClass));
this.correspondingClass = correspondingClass;
}
- @Deprecated
- @Override
- public final boolean handles(final @NonNull Class<?>
candidateValueClass) {
- return getCorrespondingClass()
-
.isAssignableFrom(ClassUtils.resolvePrimitiveIfNecessary(candidateValueClass));
- }
-
/**
* Overridable default implementation.
* @param value
@@ -121,17 +113,6 @@ public interface IdStringifier<T> {
return value.toString();
}
- /**
- * Convert a string representation of the identifier (as returned by
{@link #enstring(Object)}) into an object
- * that can be used to retrieve.
- *
- * @param stringified - as returned by {@link #enstring(Object)}
- * @param targetEntityClass - the class of the target entity, eg
<code>Customer</code>. For both JDO and JPA,
- * we always have this information
available, and is needed (at least) by the JDO
- * implementations of application
primary keys using built-ins, eg <code>LongIdentity</code>.
- */
- public abstract T destring(@NonNull String stringified, @NonNull
Class<?> targetEntityClass);
-
@Override
public final T destring(@NonNull final String stringified) {
throw _Exceptions.unsupportedOperation();
diff --git
a/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java
b/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java
index 0ebaf7772f..ff82a6d475 100644
---
a/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java
+++
b/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java
@@ -18,8 +18,6 @@
*/
package org.apache.isis.applib.value.semantics;
-import org.springframework.util.ClassUtils;
-
import org.apache.isis.applib.services.bookmark.IdStringifier;
import org.apache.isis.commons.internal.assertions._Assert;
import org.apache.isis.schema.common.v2.ValueType;
@@ -41,7 +39,10 @@ implements
protected ValueSemanticsBasedOnIdStringifier(
final @NonNull Class<T> correspondingClass) {
- _Assert.assertFalse(correspondingClass.isPrimitive());
+ _Assert.assertFalse(correspondingClass.isPrimitive(),
+ ()->String.format("not allowed to be initialzed with a
primitive class (%s), "
+ + "use the boxed variant instead",
+ correspondingClass));
this.correspondingClass = correspondingClass;
}
@@ -52,12 +53,6 @@ implements
// -- ID STRINGIFIER
- @Override
- public final boolean handles(final @NonNull Class<?> candidateValueClass) {
- return getCorrespondingClass()
-
.isAssignableFrom(ClassUtils.resolvePrimitiveIfNecessary(candidateValueClass));
- }
-
@Override
public String enstring(@NonNull final T value) {
return value.toString();
diff --git
a/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java
b/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport.java
similarity index 80%
copy from
api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java
copy to
api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport.java
index 0ebaf7772f..7401064ede 100644
---
a/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java
+++
b/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport.java
@@ -18,8 +18,6 @@
*/
package org.apache.isis.applib.value.semantics;
-import org.springframework.util.ClassUtils;
-
import org.apache.isis.applib.services.bookmark.IdStringifier;
import org.apache.isis.commons.internal.assertions._Assert;
import org.apache.isis.schema.common.v2.ValueType;
@@ -31,17 +29,20 @@ import lombok.experimental.Accessors;
/**
* @since 2.x {@index}
*/
-public abstract class ValueSemanticsBasedOnIdStringifier<T>
+public abstract class
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<T>
extends ValueSemanticsAbstract<T>
implements
- IdStringifier<T> {
+ IdStringifier.SupportingTargetEntityClass<T> {
@Getter @Accessors(makeFinal = true)
private final Class<T> correspondingClass;
- protected ValueSemanticsBasedOnIdStringifier(
+ protected ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport(
final @NonNull Class<T> correspondingClass) {
- _Assert.assertFalse(correspondingClass.isPrimitive());
+ _Assert.assertFalse(correspondingClass.isPrimitive(),
+ ()->String.format("not allowed to be initialzed with a
primitive class (%s), "
+ + "use the boxed variant instead",
+ correspondingClass));
this.correspondingClass = correspondingClass;
}
@@ -52,12 +53,6 @@ implements
// -- ID STRINGIFIER
- @Override
- public final boolean handles(final @NonNull Class<?> candidateValueClass) {
- return getCorrespondingClass()
-
.isAssignableFrom(ClassUtils.resolvePrimitiveIfNecessary(candidateValueClass));
- }
-
@Override
public String enstring(@NonNull final T value) {
return value.toString();
diff --git
a/core/runtime/src/main/java/org/apache/isis/core/runtime/idstringifier/IdStringifierLookupService.java
b/core/runtime/src/main/java/org/apache/isis/core/runtime/idstringifier/IdStringifierLookupService.java
index 984aacdeb7..e21c017a34 100644
---
a/core/runtime/src/main/java/org/apache/isis/core/runtime/idstringifier/IdStringifierLookupService.java
+++
b/core/runtime/src/main/java/org/apache/isis/core/runtime/idstringifier/IdStringifierLookupService.java
@@ -32,6 +32,7 @@ import javax.inject.Named;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
+import org.springframework.util.ClassUtils;
import org.apache.isis.applib.annotation.PriorityPrecedence;
import org.apache.isis.applib.services.bookmark.IdStringifier;
@@ -39,6 +40,7 @@ import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.core.runtime.IsisModuleCoreRuntime;
+import lombok.NonNull;
import lombok.val;
/**
@@ -78,7 +80,7 @@ public class IdStringifierLookupService {
public <T> IdStringifier<T> lookupElseFail(final Class<T>
candidateValueClass) {
val idStringifier =
stringifierByClass.computeIfAbsent(candidateValueClass, aClass -> {
for (val candidateStringifier : idStringifiers) {
- if (candidateStringifier.handles(candidateValueClass)) {
+ if (handles(candidateStringifier, candidateValueClass)) {
return candidateStringifier;
}
}
@@ -93,7 +95,7 @@ public class IdStringifierLookupService {
public <T> Optional<IdStringifier<T>> lookup(final Class<T>
candidateValueClass) {
val idStringifier =
stringifierByClass.computeIfAbsent(candidateValueClass, aClass -> {
for (val candidateStringifier : idStringifiers) {
- if (candidateStringifier.handles(candidateValueClass)) {
+ if (handles(candidateStringifier, candidateValueClass)) {
return candidateStringifier;
}
}
@@ -101,4 +103,10 @@ public class IdStringifierLookupService {
});
return Optional.ofNullable(_Casts.uncheckedCast(idStringifier));
}
+
+ private boolean handles(final IdStringifier<?> idStringifier, final
@NonNull Class<?> candidateValueClass) {
+ return idStringifier.getCorrespondingClass()
+
.isAssignableFrom(ClassUtils.resolvePrimitiveIfNecessary(candidateValueClass));
+ }
+
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/IsisModulePersistenceJdoDatanucleus.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/IsisModulePersistenceJdoDatanucleus.java
index 81460561d2..b89a179f22 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/IsisModulePersistenceJdoDatanucleus.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/IsisModulePersistenceJdoDatanucleus.java
@@ -54,26 +54,26 @@ import
org.apache.isis.persistence.jdo.datanucleus.config.DatanucleusSettings;
import org.apache.isis.persistence.jdo.datanucleus.dialect.DnJdoDialect;
import
org.apache.isis.persistence.jdo.datanucleus.entities.DnEntityStateProvider;
import
org.apache.isis.persistence.jdo.datanucleus.jdosupport.JdoSupportServiceDefault;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForByteId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForCharId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForCharIdentity;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForDatastoreId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForDatastoreUniqueLongId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForIntId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForLongId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForObjectId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForShortId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForStringId;
import
org.apache.isis.persistence.jdo.datanucleus.mixins.Persistable_datanucleusVersionLong;
import
org.apache.isis.persistence.jdo.datanucleus.mixins.Persistable_datanucleusVersionTimestamp;
import
org.apache.isis.persistence.jdo.datanucleus.mixins.Persistable_downloadJdoMetadata;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForByteIdentity;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForDatastoreIdImpl;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForIntIdentity;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForLongIdentity;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForObjectIdentity;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForShortIdentity;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForStringIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoByteIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoByteIdentityValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoCharIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoCharIdentityValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoDatastoreIdImplValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoDatastoreIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoDatastoreUniqueLongIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoIntIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoIntIdentityValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoLongIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoLongIdentityValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoObjectIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoObjectIdentityValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoShortIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoShortIdentityValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoStringIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoStringIdentityValueSemantics;
import
org.apache.isis.persistence.jdo.integration.IsisModulePersistenceJdoIntegration;
import
org.apache.isis.persistence.jdo.provider.config.JdoEntityDiscoveryListener;
import org.apache.isis.persistence.jdo.spring.integration.JdoDialect;
@@ -96,23 +96,23 @@ import lombok.extern.log4j.Log4j2;
// @Component's
DnEntityStateProvider.class,
- IdStringifierForDatastoreIdImpl.class, // datastore identity
- IdStringifierForDatastoreUniqueLongId.class,
- IdStringifierForDatastoreId.class,
- IdStringifierForShortIdentity.class, // application-defined PK,
javax.jdo.identity
- IdStringifierForLongIdentity.class,
- IdStringifierForIntIdentity.class,
- IdStringifierForByteIdentity.class,
- IdStringifierForCharIdentity.class,
- IdStringifierForStringIdentity.class,
- IdStringifierForObjectIdentity.class,
- IdStringifierForShortId.class, // application-defined PK,
org.datanucleus.identity
- IdStringifierForLongId.class,
- IdStringifierForIntId.class,
- IdStringifierForByteId.class,
- IdStringifierForCharId.class,
- IdStringifierForStringId.class,
- IdStringifierForObjectId.class,
+ JdoDatastoreIdImplValueSemantics.class, // datastore identity
+ JdoDatastoreUniqueLongIdValueSemantics.class,
+ JdoDatastoreIdValueSemantics.class,
+ JdoShortIdentityValueSemantics.class, // application-defined PK,
javax.jdo.identity
+ JdoLongIdentityValueSemantics.class,
+ JdoIntIdentityValueSemantics.class,
+ JdoByteIdentityValueSemantics.class,
+ JdoCharIdentityValueSemantics.class,
+ JdoStringIdentityValueSemantics.class,
+ JdoObjectIdentityValueSemantics.class,
+ JdoShortIdValueSemantics.class, // application-defined PK,
org.datanucleus.identity
+ JdoLongIdValueSemantics.class,
+ JdoIntIdValueSemantics.class,
+ JdoByteIdValueSemantics.class,
+ JdoCharIdValueSemantics.class,
+ JdoStringIdValueSemantics.class,
+ JdoObjectIdValueSemantics.class,
// @Mixin's
Persistable_datanucleusVersionLong.class,
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
index 426a9eeea6..45f987cd2e 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
@@ -156,7 +156,7 @@ implements EntityFacet {
val primaryKeyType = primaryKeyTypeFor(entityClass);
val idStringifier =
idStringifierLookupService.lookupElseFail(primaryKeyType);
- val primaryKey = _Casts.castTo(IdStringifier.Abstract.class,
idStringifier)
+ val primaryKey =
_Casts.castTo(IdStringifier.SupportingTargetEntityClass.class, idStringifier)
.map(stringifier->stringifier.destring(bookmark.getIdentifier(), entityClass))
.orElseGet(()->idStringifier.destring(bookmark.getIdentifier()));
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/applib/ByteArrayBlobRdbmsMapping.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/ByteArrayBlobRdbmsMapping.java
similarity index 99%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/applib/ByteArrayBlobRdbmsMapping.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/ByteArrayBlobRdbmsMapping.java
index 279a601193..6e64d997b3 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/applib/ByteArrayBlobRdbmsMapping.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/ByteArrayBlobRdbmsMapping.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.valuemappings.applib;
+package org.apache.isis.persistence.jdo.datanucleus.valuemappings;
import org.datanucleus.store.rdbms.RDBMSStoreManager;
import org.datanucleus.store.rdbms.mapping.column.BlobColumnMapping;
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/applib/IsisBlobMapping.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/IsisBlobMapping.java
similarity index 98%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/applib/IsisBlobMapping.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/IsisBlobMapping.java
index 5a889c141f..80082ae3de 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/applib/IsisBlobMapping.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/IsisBlobMapping.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.valuetypes.applib;
+package org.apache.isis.persistence.jdo.datanucleus.valuemappings;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/applib/IsisClobMapping.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/IsisClobMapping.java
similarity index 98%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/applib/IsisClobMapping.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/IsisClobMapping.java
index d56a2214bd..f670379a99 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/applib/IsisClobMapping.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuemappings/IsisClobMapping.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.valuetypes.applib;
+package org.apache.isis.persistence.jdo.datanucleus.valuemappings;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForByteId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoByteIdValueSemantics.java
similarity index 79%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForByteId.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoByteIdValueSemantics.java
index 0443d90324..cf7c11e0e0 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForByteId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoByteIdValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
@@ -24,15 +24,16 @@ import org.datanucleus.identity.ByteId;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForByteId extends IdStringifier.Abstract<ByteId> {
+public class JdoByteIdValueSemantics
+extends ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<ByteId>
{
- public IdStringifierForByteId() {
+ public JdoByteIdValueSemantics() {
super(ByteId.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForByteIdentity.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
similarity index 79%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForByteIdentity.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
index 219ccce367..fca3e71379 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForByteIdentity.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
import javax.jdo.identity.ByteIdentity;
@@ -24,15 +24,16 @@ import javax.jdo.identity.ByteIdentity;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForByteIdentity extends
IdStringifier.Abstract<ByteIdentity> {
+public class JdoByteIdentityValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<ByteIdentity> {
- public IdStringifierForByteIdentity() {
+ public JdoByteIdentityValueSemantics() {
super(ByteIdentity.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForCharId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoCharIdValueSemantics.java
similarity index 81%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForCharId.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoCharIdValueSemantics.java
index 9835a2641f..8869d8e56e 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForCharId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoCharIdValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
import javax.inject.Inject;
@@ -26,6 +26,7 @@ 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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.Builder;
import lombok.NonNull;
@@ -33,11 +34,12 @@ import lombok.val;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForCharId extends IdStringifier.Abstract<CharId> {
+public class JdoCharIdValueSemantics
+extends ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<CharId>
{
@Inject IdStringifier<Character> idStringifierForCharacter;
- public IdStringifierForCharId() {
+ public JdoCharIdValueSemantics() {
super(CharId.class);
}
@@ -45,7 +47,7 @@ public class IdStringifierForCharId extends
IdStringifier.Abstract<CharId> {
* for testing only
*/
@Builder
- IdStringifierForCharId(final IdStringifier<Character>
idStringifierForCharacter) {
+ JdoCharIdValueSemantics(final IdStringifier<Character>
idStringifierForCharacter) {
this();
this.idStringifierForCharacter = idStringifierForCharacter;
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForCharIdentity.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
similarity index 81%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForCharIdentity.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
index 3ce97b71b6..257a8f9a57 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForCharIdentity.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
import javax.inject.Inject;
@@ -26,6 +26,7 @@ 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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.Builder;
import lombok.NonNull;
@@ -33,11 +34,12 @@ import lombok.val;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForCharIdentity extends
IdStringifier.Abstract<CharIdentity> {
+public class JdoCharIdentityValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<CharIdentity> {
@Inject IdStringifier<Character> idStringifierForCharacter;
- public IdStringifierForCharIdentity() {
+ public JdoCharIdentityValueSemantics() {
super(CharIdentity.class);
}
@@ -45,7 +47,7 @@ public class IdStringifierForCharIdentity extends
IdStringifier.Abstract<CharIde
* for testing only
*/
@Builder
- IdStringifierForCharIdentity(final IdStringifier<Character>
idStringifierForCharacter) {
+ JdoCharIdentityValueSemantics(final IdStringifier<Character>
idStringifierForCharacter) {
this();
this.idStringifierForCharacter = idStringifierForCharacter;
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForDatastoreIdImpl.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdImplValueSemantics.java
similarity index 84%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForDatastoreIdImpl.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdImplValueSemantics.java
index de6449efd9..b8994d3186 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForDatastoreIdImpl.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdImplValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
@@ -24,7 +24,7 @@ import org.datanucleus.identity.DatastoreIdImpl;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
import lombok.SneakyThrows;
@@ -32,11 +32,12 @@ import lombok.val;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForDatastoreIdImpl extends
IdStringifier.Abstract<DatastoreIdImpl> {
+public class JdoDatastoreIdImplValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<DatastoreIdImpl>
{
public static final String STRING_DELIMITER = "[OID]"; // as
- public IdStringifierForDatastoreIdImpl() {
+ public JdoDatastoreIdImplValueSemantics() {
super(DatastoreIdImpl.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForDatastoreId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
similarity index 82%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForDatastoreId.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
index 628998c2fd..7f154a029d 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForDatastoreId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import java.lang.reflect.Constructor;
@@ -28,6 +28,7 @@ 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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.context._Context;
@@ -36,9 +37,10 @@ import lombok.SneakyThrows;
@Component
@Priority(PriorityPrecedence.LATE + 100) // after the implementations of
DatastoreId; for a custom impl.
-public class IdStringifierForDatastoreId extends
IdStringifier.Abstract<DatastoreId> {
+public class JdoDatastoreIdValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<DatastoreId> {
- public IdStringifierForDatastoreId() {
+ public JdoDatastoreIdValueSemantics() {
super(DatastoreId.class);
}
@@ -49,7 +51,7 @@ public class IdStringifierForDatastoreId extends
IdStringifier.Abstract<Datastor
// re-create-able through the constructor
//
// to do this, we also need to capture the class of the Id value class
itself, followed by the value (as a string)
- return value.getClass().getName() + SEPARATOR + value.toString();
+ return value.getClass().getName() + IdStringifier.Abstract.SEPARATOR +
value.toString();
}
@SneakyThrows
@@ -57,7 +59,7 @@ public class IdStringifierForDatastoreId extends
IdStringifier.Abstract<Datastor
public DatastoreId destring(
final @NonNull String stringified,
final @Nullable Class<?> targetEntityClass) {
- int idx = stringified.indexOf(SEPARATOR);
+ int idx = stringified.indexOf(IdStringifier.Abstract.SEPARATOR);
String clsName = stringified.substring(0, idx);
String keyStr = stringified.substring(idx + 1);
final Class<?> cls = _Context.loadClass(clsName);
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForDatastoreUniqueLongId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoDatastoreUniqueLongIdValueSemantics.java
similarity index 80%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForDatastoreUniqueLongId.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoDatastoreUniqueLongIdValueSemantics.java
index b56d1a6ed2..66b571c3b1 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForDatastoreUniqueLongId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoDatastoreUniqueLongIdValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
@@ -25,16 +25,17 @@ import org.springframework.lang.Nullable;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
import lombok.SneakyThrows;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForDatastoreUniqueLongId extends
IdStringifier.Abstract<DatastoreUniqueLongId> {
+public class JdoDatastoreUniqueLongIdValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<DatastoreUniqueLongId>
{
- public IdStringifierForDatastoreUniqueLongId() {
+ public JdoDatastoreUniqueLongIdValueSemantics() {
super(DatastoreUniqueLongId.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForIntId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoIntIdValueSemantics.java
similarity index 79%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForIntId.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoIntIdValueSemantics.java
index 13285c40f6..1591d54010 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForIntId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoIntIdValueSemantics.java
@@ -16,24 +16,24 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
-import javax.jdo.identity.IntIdentity;
import org.datanucleus.identity.IntId;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForIntId extends IdStringifier.Abstract<IntId> {
+public class JdoIntIdValueSemantics
+extends ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<IntId> {
- public IdStringifierForIntId() {
+ public JdoIntIdValueSemantics() {
super(IntId.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForIntIdentity.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
similarity index 79%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForIntIdentity.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
index 5a849f4d12..ce12f28ae8 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForIntIdentity.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
import javax.jdo.identity.IntIdentity;
@@ -24,15 +24,16 @@ import javax.jdo.identity.IntIdentity;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForIntIdentity extends
IdStringifier.Abstract<IntIdentity> {
+public class JdoIntIdentityValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<IntIdentity> {
- public IdStringifierForIntIdentity() {
+ public JdoIntIdentityValueSemantics() {
super(IntIdentity.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForLongId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoLongIdValueSemantics.java
similarity index 79%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForLongId.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoLongIdValueSemantics.java
index e58dcb237c..23efa2f5fc 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForLongId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoLongIdValueSemantics.java
@@ -16,24 +16,24 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
-import javax.jdo.identity.LongIdentity;
import org.datanucleus.identity.LongId;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForLongId extends IdStringifier.Abstract<LongId> {
+public class JdoLongIdValueSemantics
+extends ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<LongId>
{
- public IdStringifierForLongId() {
+ public JdoLongIdValueSemantics() {
super(LongId.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForLongIdentity.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
similarity index 79%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForLongIdentity.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
index c288e61829..74dc4cec98 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForLongIdentity.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
import javax.jdo.identity.LongIdentity;
@@ -24,15 +24,16 @@ import javax.jdo.identity.LongIdentity;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForLongIdentity extends
IdStringifier.Abstract<LongIdentity> {
+public class JdoLongIdentityValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<LongIdentity> {
- public IdStringifierForLongIdentity() {
+ public JdoLongIdentityValueSemantics() {
super(LongIdentity.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoObjectIdValueSemantics.java
similarity index 89%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectId.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoObjectIdValueSemantics.java
index b2448bbb38..2a706818eb 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoObjectIdValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import java.util.UUID;
@@ -26,7 +26,7 @@ import org.datanucleus.identity.ObjectId;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.Builder;
import lombok.NonNull;
@@ -42,13 +42,14 @@ import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
@Builder
-public class IdStringifierForObjectId extends IdStringifier.Abstract<ObjectId>
{
+public class JdoObjectIdValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<ObjectId> {
private static final String PREFIX_UUID = "u_";
private static final String PREFIX_LONG = "l_";
private static final String PREFIX_INT = "i_";
- public IdStringifierForObjectId() {
+ public JdoObjectIdValueSemantics() {
super(ObjectId.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectIdentity.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
similarity index 89%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectIdentity.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
index c14a4afdd0..93f01efcc4 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectIdentity.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import java.util.UUID;
@@ -26,7 +26,7 @@ import javax.jdo.identity.ObjectIdentity;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.Builder;
import lombok.NonNull;
@@ -42,13 +42,14 @@ import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
@Builder
-public class IdStringifierForObjectIdentity extends
IdStringifier.Abstract<ObjectIdentity> {
+public class JdoObjectIdentityValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<ObjectIdentity> {
private static final String PREFIX_UUID = "u_";
private static final String PREFIX_LONG = "l_";
private static final String PREFIX_INT = "i_";
- public IdStringifierForObjectIdentity() {
+ public JdoObjectIdentityValueSemantics() {
super(ObjectIdentity.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForShortId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoShortIdValueSemantics.java
similarity index 79%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForShortId.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoShortIdValueSemantics.java
index f84d5cf027..bee54b5430 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForShortId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoShortIdValueSemantics.java
@@ -16,24 +16,24 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
-import javax.jdo.identity.ShortIdentity;
import org.datanucleus.identity.ShortId;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForShortId extends IdStringifier.Abstract<ShortId> {
+public class JdoShortIdValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<ShortId> {
- public IdStringifierForShortId() {
+ public JdoShortIdValueSemantics() {
super(ShortId.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForShortIdentity.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
similarity index 79%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForShortIdentity.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
index 01929e2e57..0d432f515f 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForShortIdentity.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
import javax.jdo.identity.ShortIdentity;
@@ -24,15 +24,16 @@ import javax.jdo.identity.ShortIdentity;
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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForShortIdentity extends
IdStringifier.Abstract<ShortIdentity> {
+public class JdoShortIdentityValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<ShortIdentity> {
- public IdStringifierForShortIdentity() {
+ public JdoShortIdentityValueSemantics() {
super(ShortIdentity.class);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForStringIdentity.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoStringIdValueSemantics.java
similarity index 81%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForStringIdentity.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoStringIdValueSemantics.java
index b10991ae3a..bdc1bb6f7c 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForStringIdentity.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoStringIdValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
import javax.inject.Inject;
@@ -26,6 +26,7 @@ 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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.Builder;
import lombok.NonNull;
@@ -33,11 +34,12 @@ import lombok.val;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForStringIdentity extends
IdStringifier.Abstract<StringIdentity> {
+public class JdoStringIdValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<StringIdentity> {
@Inject IdStringifier<String> idStringifierForString;
- public IdStringifierForStringIdentity() {
+ public JdoStringIdValueSemantics() {
super(StringIdentity.class);
}
@@ -45,7 +47,7 @@ public class IdStringifierForStringIdentity extends
IdStringifier.Abstract<Strin
* for testing only
*/
@Builder
- IdStringifierForStringIdentity(final IdStringifier<String>
idStringifierForString) {
+ JdoStringIdValueSemantics(final IdStringifier<String>
idStringifierForString) {
this();
this.idStringifierForString = idStringifierForString;
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForStringId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
similarity index 81%
rename from
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForStringId.java
rename to
persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
index cfcd09b637..7a3b23de0f 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForStringId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
+package org.apache.isis.persistence.jdo.datanucleus.valuetypes;
import javax.annotation.Priority;
import javax.inject.Inject;
@@ -26,6 +26,7 @@ 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.value.semantics.ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport;
import lombok.Builder;
import lombok.NonNull;
@@ -33,11 +34,12 @@ import lombok.val;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForStringId extends
IdStringifier.Abstract<StringIdentity> {
+public class JdoStringIdentityValueSemantics
+extends
ValueSemanticsBasedOnIdStringifierWithTargetEntityClassSupport<StringIdentity> {
@Inject IdStringifier<String> idStringifierForString;
- public IdStringifierForStringId() {
+ public JdoStringIdentityValueSemantics() {
super(StringIdentity.class);
}
@@ -45,7 +47,7 @@ public class IdStringifierForStringId extends
IdStringifier.Abstract<StringIdent
* for testing only
*/
@Builder
- IdStringifierForStringId(final IdStringifier<String>
idStringifierForString) {
+ JdoStringIdentityValueSemantics(final IdStringifier<String>
idStringifierForString) {
this();
this.idStringifierForString = idStringifierForString;
}
diff --git a/persistence/jdo/datanucleus/src/main/resources/plugin.xml
b/persistence/jdo/datanucleus/src/main/resources/plugin.xml
index 8c9538f5cd..8b58294534 100644
--- a/persistence/jdo/datanucleus/src/main/resources/plugin.xml
+++ b/persistence/jdo/datanucleus/src/main/resources/plugin.xml
@@ -28,10 +28,10 @@
<extension point="org.datanucleus.store.rdbms.java_mapping">
<mapping
java-type="org.apache.isis.applib.value.Blob"
-
mapping-class="org.apache.isis.persistence.jdo.datanucleus.valuetypes.applib.IsisBlobMapping"/>
+
mapping-class="org.apache.isis.persistence.jdo.datanucleus.valuemappings.IsisBlobMapping"/>
<mapping
java-type="org.apache.isis.applib.value.Clob"
-
mapping-class="org.apache.isis.persistence.jdo.datanucleus.valuetypes.applib.IsisClobMapping"/>
+
mapping-class="org.apache.isis.persistence.jdo.datanucleus.valuemappings.IsisClobMapping"/>
</extension>
@@ -45,14 +45,14 @@
jdbc-type="BLOB"
sql-type="BLOB"
default="true"
-
column-mapping-class="org.apache.isis.persistence.jdo.datanucleus.valuemappings.applib.ByteArrayBlobRdbmsMapping">
+
column-mapping-class="org.apache.isis.persistence.jdo.datanucleus.valuemappings.ByteArrayBlobRdbmsMapping">
</mapping>
<mapping
java-type="[Ljava.lang.Byte;"
jdbc-type="BLOB"
sql-type="BLOB"
default="true"
-
column-mapping-class="org.apache.isis.persistence.jdo.datanucleus.valuemappings.applib.ByteArrayBlobRdbmsMapping">
+
column-mapping-class="org.apache.isis.persistence.jdo.datanucleus.valuemappings.ByteArrayBlobRdbmsMapping">
</mapping>
</extension>
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForByteIdentity_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForByteIdentity_Test.java
index 057070cbb9..83a584bb27 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForByteIdentity_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForByteIdentity_Test.java
@@ -29,7 +29,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForByteIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoByteIdentityValueSemantics;
import lombok.val;
@@ -53,7 +53,7 @@ class IdStringifierForByteIdentity_Test {
val entityType = Customer.class;
- val stringifier = new IdStringifierForByteIdentity();
+ val stringifier = new JdoByteIdentityValueSemantics();
val stringified = stringifier.enstring(new ByteIdentity(entityType,
value));
val parse = stringifier.destring(stringified, entityType);
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForCharIdentity_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForCharIdentity_Test.java
index 0e7ec6b3e1..fed3793f7d 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForCharIdentity_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForCharIdentity_Test.java
@@ -31,7 +31,7 @@ import org.junit.jupiter.params.provider.MethodSource;
import static org.assertj.core.api.Assertions.assertThat;
import org.apache.isis.core.metamodel.valuesemantics.CharacterValueSemantics;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForCharIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoCharIdentityValueSemantics;
import lombok.val;
@@ -71,7 +71,7 @@ class IdStringifierForCharIdentity_Test {
val entityType = Customer.class;
- val stringifier = IdStringifierForCharIdentity.builder()
+ val stringifier = JdoCharIdentityValueSemantics.builder()
.idStringifierForCharacter(new CharacterValueSemantics())
.build();
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreIdImpl_long_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreIdImpl_long_Test.java
index 8669249b07..4560813f0c 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreIdImpl_long_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreIdImpl_long_Test.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForDatastoreIdImpl;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoDatastoreIdImplValueSemantics;
import lombok.val;
@@ -52,7 +52,7 @@ class IdStringifierForDatastoreId_DatastoreIdImpl_long_Test {
val entityType = Customer.class;
- val stringifier = new IdStringifierForDatastoreIdImpl();
+ val stringifier = new JdoDatastoreIdImplValueSemantics();
val stringified = stringifier.enstring(new
DatastoreIdImpl(entityType.getName(), value));
if(enstringed != null) {
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreUniqueLongId_long_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreUniqueLongId_long_Test.java
index 192cb82727..55e99fbe21 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreUniqueLongId_long_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreUniqueLongId_long_Test.java
@@ -28,8 +28,8 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForDatastoreIdImpl;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForDatastoreUniqueLongId;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoDatastoreIdImplValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoDatastoreUniqueLongIdValueSemantics;
import lombok.val;
@@ -53,7 +53,7 @@ class
IdStringifierForDatastoreId_DatastoreUniqueLongId_long_Test {
val entityType = Customer.class;
- val stringifier = new IdStringifierForDatastoreUniqueLongId();
+ val stringifier = new JdoDatastoreUniqueLongIdValueSemantics();
val stringified = stringifier.enstring(new
DatastoreUniqueLongId(value));
val parse = stringifier.destring(stringified, null); // no need to
pass entityType
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreUniqueLongId_str_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreUniqueLongId_str_Test.java
index 6cceb3b0fc..a00597b760 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreUniqueLongId_str_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForDatastoreId_DatastoreUniqueLongId_str_Test.java
@@ -28,8 +28,8 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForDatastoreIdImpl;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForDatastoreUniqueLongId;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoDatastoreIdImplValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoDatastoreUniqueLongIdValueSemantics;
import lombok.val;
@@ -54,7 +54,7 @@ class
IdStringifierForDatastoreId_DatastoreUniqueLongId_str_Test {
val entityType = Customer.class;
String strValue = "" + value;
- val stringifier = new IdStringifierForDatastoreUniqueLongId();
+ val stringifier = new JdoDatastoreUniqueLongIdValueSemantics();
val stringified = stringifier.enstring(new
DatastoreUniqueLongId(strValue));
val parse = stringifier.destring(stringified, null); // no need to
pass entityType
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForIntId_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForIntId_Test.java
index ca67d1f9c7..8980a8e0e5 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForIntId_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForIntId_Test.java
@@ -30,8 +30,8 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForIntId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForIntIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoIntIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoIntIdentityValueSemantics;
import lombok.val;
@@ -55,7 +55,7 @@ class IdStringifierForIntId_Test {
val entityType = Customer.class;
- val stringifier = new IdStringifierForIntId();
+ val stringifier = new JdoIntIdValueSemantics();
val stringified = stringifier.enstring(new IntId(entityType, value));
val parse = stringifier.destring(stringified, entityType);
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForIntIdentity_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForIntIdentity_Test.java
index bd684bfb3c..51eeaac7d3 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForIntIdentity_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForIntIdentity_Test.java
@@ -29,7 +29,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForIntIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoIntIdentityValueSemantics;
import lombok.val;
@@ -53,7 +53,7 @@ class IdStringifierForIntIdentity_Test {
val entityType = Customer.class;
- val stringifier = new IdStringifierForIntIdentity();
+ val stringifier = new JdoIntIdentityValueSemantics();
val stringified = stringifier.enstring(new IntIdentity(entityType,
value));
val parse = stringifier.destring(stringified, entityType);
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForLongId_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForLongId_Test.java
index 7e7c59f2a5..bef3968e01 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForLongId_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForLongId_Test.java
@@ -30,8 +30,8 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForLongId;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForLongIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoLongIdValueSemantics;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoLongIdentityValueSemantics;
import lombok.val;
@@ -55,7 +55,7 @@ class IdStringifierForLongId_Test {
val entityType = Customer.class;
- val stringifier = new IdStringifierForLongId();
+ val stringifier = new JdoLongIdValueSemantics();
val stringified = stringifier.enstring(new LongId(entityType, value));
val parse = stringifier.destring(stringified, entityType);
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForLongIdentity_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForLongIdentity_Test.java
index 1bd80c9070..9ba0455f7b 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForLongIdentity_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForLongIdentity_Test.java
@@ -29,7 +29,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForLongIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoLongIdentityValueSemantics;
import lombok.val;
@@ -53,7 +53,7 @@ class IdStringifierForLongIdentity_Test {
val entityType = Customer.class;
- val stringifier = new IdStringifierForLongIdentity();
+ val stringifier = new JdoLongIdentityValueSemantics();
val stringified = stringifier.enstring(new LongIdentity(entityType,
value));
val parse = stringifier.destring(stringified, entityType);
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
index ad09b47905..5072e3ab38 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
@@ -29,7 +29,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForObjectIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoObjectIdentityValueSemantics;
import lombok.val;
@@ -53,7 +53,7 @@ class IdStringifierForObjectIdentity_Test {
val entityType = Customer.class;
- val stringifier = IdStringifierForObjectIdentity.builder().build();
+ val stringifier = JdoObjectIdentityValueSemantics.builder().build();
val stringified = stringifier.enstring(new ObjectIdentity(entityType,
value));
val parse = stringifier.destring(stringified, entityType);
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForShortIdentity_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForShortIdentity_Test.java
index fa51bf661a..e92dd8630b 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForShortIdentity_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForShortIdentity_Test.java
@@ -29,7 +29,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForShortIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoShortIdentityValueSemantics;
import lombok.val;
@@ -53,7 +53,7 @@ class IdStringifierForShortIdentity_Test {
val entityType = Customer.class;
- val stringifier = new IdStringifierForShortIdentity();
+ val stringifier = new JdoShortIdentityValueSemantics();
val stringified = stringifier.enstring(new ShortIdentity(entityType,
value));
val parse = stringifier.destring(stringified, entityType);
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForStringIdentity_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForStringIdentity_Test.java
index bea155efbb..9f9421d517 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForStringIdentity_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForStringIdentity_Test.java
@@ -30,7 +30,7 @@ import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.apache.isis.core.metamodel.valuesemantics.StringValueSemantics;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForStringIdentity;
+import
org.apache.isis.persistence.jdo.datanucleus.valuetypes.JdoStringIdentityValueSemantics;
import lombok.val;
@@ -59,7 +59,7 @@ class IdStringifierForStringIdentity_Test {
val entityType = Customer.class;
- val stringifier = IdStringifierForStringIdentity.builder()
+ val stringifier = JdoStringIdentityValueSemantics.builder()
.idStringifierForString(new StringValueSemantics()).build();
val stringified = stringifier.enstring(new StringIdentity(entityType,
value));
diff --git
a/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/entity/JpaEntityFacet.java
b/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/entity/JpaEntityFacet.java
index 74138f2944..123e9c77c9 100644
---
a/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/entity/JpaEntityFacet.java
+++
b/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/entity/JpaEntityFacet.java
@@ -122,7 +122,7 @@ public class JpaEntityFacet
log.debug("fetchEntity; bookmark={}", bookmark);
val idStringifier = lookupIdStringifier(getPrimaryKeyType());
- val primaryKey = _Casts.castTo(IdStringifier.Abstract.class,
idStringifier)
+ val primaryKey =
_Casts.castTo(IdStringifier.SupportingTargetEntityClass.class, idStringifier)
.map(stringifier->stringifier.destring(bookmark.getIdentifier(), entityClass))
.orElseGet(()->idStringifier.destring(bookmark.getIdentifier()));