This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-3102
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/ISIS-3102 by this push:
     new 55d4a21d00 ISIS-3002: removes special case of encoding some ObjectIds 
using UUID
55d4a21d00 is described below

commit 55d4a21d00242ed62db4ee4aa209f88d15da3b39
Author: Dan Haywood <[email protected]>
AuthorDate: Sun Jul 31 14:25:01 2022 +0100

    ISIS-3002: removes special case of encoding some ObjectIds using UUID
---
 .../idstringifiers/IdStringifierForUuid.java       |  6 +-
 .../facets/entity/IdStringifierForObjectId.java    | 24 --------
 .../entity/IdStringifierForObjectIdentity.java     | 24 --------
 ...va => IdStringifierForObjectIdentity_Test.java} |  6 +-
 ...dStringifierForObjectIdentity_forUuid_Test.java | 69 ----------------------
 5 files changed, 5 insertions(+), 124 deletions(-)

diff --git 
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForUuid.java
 
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForUuid.java
index 88055f2936..6bfb0fbf50 100644
--- 
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForUuid.java
+++ 
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForUuid.java
@@ -32,14 +32,14 @@ import lombok.NonNull;
 
 @Component
 @Priority(PriorityPrecedence.LATE)
-public class IdStringifierForUuid extends 
IdStringifier.AbstractWithPrefix<UUID> {
+public class IdStringifierForUuid extends IdStringifier.Abstract<UUID> {
 
     public IdStringifierForUuid() {
-        super(UUID.class, "u");
+        super(UUID.class);
     }
 
     @Override
-    public UUID doDestring(final @NonNull String stringified, @NonNull 
Class<?> targetEntityClass) {
+    public UUID destring(final @NonNull String stringified, @NonNull Class<?> 
targetEntityClass) {
         return UUID.fromString(stringified);
     }
 
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/metamodel/facets/entity/IdStringifierForObjectId.java
index e3d122019c..3ebcc66d8b 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/metamodel/facets/entity/IdStringifierForObjectId.java
@@ -18,17 +18,13 @@
  */
 package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
 
-import java.util.UUID;
-
 import javax.annotation.Priority;
-import javax.inject.Inject;
 
 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.services.bookmark.idstringifiers.IdStringifierForUuid;
 
 import lombok.Builder;
 import lombok.NonNull;
@@ -38,29 +34,13 @@ import lombok.NonNull;
 @Builder
 public class IdStringifierForObjectId extends IdStringifier.Abstract<ObjectId> 
{
 
-    @Inject IdStringifierForUuid idStringifierForUuid;
-
     public IdStringifierForObjectId() {
         super(ObjectId.class);
     }
 
-    /**
-     * for testing only
-     * @param idStringifierForUuid
-     */
-    @Builder
-    IdStringifierForObjectId(final IdStringifierForUuid idStringifierForUuid) {
-        this();
-        this.idStringifierForUuid = idStringifierForUuid;
-    }
-
     @Override
     public String enstring(final @NonNull ObjectId value) {
         Object keyAsObject = value.getKeyAsObject();
-        if (keyAsObject instanceof UUID) {
-            UUID uuid = (UUID) keyAsObject;
-            return idStringifierForUuid.enstring(uuid);
-        }
         // rely on JDO spec (5.4.3)
         return value.toString();
     }
@@ -69,10 +49,6 @@ public class IdStringifierForObjectId extends 
IdStringifier.Abstract<ObjectId> {
     public ObjectId destring(
             final @NonNull String stringified,
             final Class<?> targetEntityClassIfAny) {
-        if (idStringifierForUuid.recognizes(stringified)) {
-            UUID uuid = idStringifierForUuid.destring(stringified, 
targetEntityClassIfAny);
-            return new ObjectId(targetEntityClassIfAny, uuid);
-        }
         return new ObjectId(targetEntityClassIfAny, stringified);
     }
 }
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/metamodel/facets/entity/IdStringifierForObjectIdentity.java
index a27c9f0668..fbe8b47ecf 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/metamodel/facets/entity/IdStringifierForObjectIdentity.java
@@ -18,17 +18,13 @@
  */
 package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
 
-import java.util.UUID;
-
 import javax.annotation.Priority;
-import javax.inject.Inject;
 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.services.bookmark.idstringifiers.IdStringifierForUuid;
 
 import lombok.Builder;
 import lombok.NonNull;
@@ -38,29 +34,13 @@ import lombok.NonNull;
 @Builder
 public class IdStringifierForObjectIdentity extends 
IdStringifier.Abstract<ObjectIdentity> {
 
-    @Inject IdStringifierForUuid idStringifierForUuid;
-
     public IdStringifierForObjectIdentity() {
         super(ObjectIdentity.class);
     }
 
-    /**
-     * for testing only
-     * @param idStringifierForUuid
-     */
-    @Builder
-    IdStringifierForObjectIdentity(final IdStringifierForUuid 
idStringifierForUuid) {
-        this();
-        this.idStringifierForUuid = idStringifierForUuid;
-    }
-
     @Override
     public String enstring(final @NonNull ObjectIdentity value) {
         Object keyAsObject = value.getKeyAsObject();
-        if (keyAsObject instanceof UUID) {
-            UUID uuid = (UUID) keyAsObject;
-            return idStringifierForUuid.enstring(uuid);
-        }
         // rely on JDO spec (5.4.3)
         return value.toString();
     }
@@ -69,10 +49,6 @@ public class IdStringifierForObjectIdentity extends 
IdStringifier.Abstract<Objec
     public ObjectIdentity destring(
             final @NonNull String stringified,
             final Class<?> targetEntityClassIfAny) {
-        if (idStringifierForUuid.recognizes(stringified)) {
-            UUID uuid = idStringifierForUuid.destring(stringified, 
targetEntityClassIfAny);
-            return new ObjectIdentity(targetEntityClassIfAny, uuid);
-        }
         return new ObjectIdentity(targetEntityClassIfAny, stringified);
     }
 }
diff --git 
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_other_Test.java
 
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
similarity index 92%
rename from 
persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_other_Test.java
rename to 
persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
index 27dfd9ec80..96b133a311 100644
--- 
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_other_Test.java
+++ 
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
@@ -34,7 +34,7 @@ import 
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStr
 
 import lombok.val;
 
-class IdStringifierForObjectIdentity_other_Test {
+class IdStringifierForObjectIdentity_Test {
 
     public static Stream<Arguments> roundtrip() {
         return Stream.of(
@@ -54,9 +54,7 @@ class IdStringifierForObjectIdentity_other_Test {
 
         val entityType = Customer.class;
 
-        val stringifier = IdStringifierForObjectIdentity.builder()
-                                .idStringifierForUuid(new 
IdStringifierForUuid())
-                                .build();
+        val stringifier = IdStringifierForObjectIdentity.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/IdStringifierForObjectIdentity_forUuid_Test.java
 
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_forUuid_Test.java
deleted file mode 100644
index 0e53f7494e..0000000000
--- 
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_forUuid_Test.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.isis.persistence.jdo.datanucleus.oid;
-
-import java.util.UUID;
-import java.util.stream.Stream;
-
-import javax.jdo.identity.ObjectIdentity;
-
-import org.assertj.core.api.Assertions;
-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.bookmark.idstringifiers.IdStringifierForUuid;
-import 
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForObjectIdentity;
-
-import lombok.val;
-
-class IdStringifierForObjectIdentity_forUuid_Test {
-
-    public static Stream<Arguments> roundtrip() {
-        return Stream.of(
-                Arguments.of(UUID.randomUUID()),
-                Arguments.of(UUID.randomUUID()),
-                Arguments.of(UUID.randomUUID())
-        );
-    }
-
-    static class Customer {}
-
-    @ParameterizedTest
-    @MethodSource()
-    void roundtrip(UUID value) {
-
-        val entityType = Customer.class;
-
-        val stringifier = IdStringifierForObjectIdentity.builder()
-                                .idStringifierForUuid(new 
IdStringifierForUuid())
-                                .build();
-
-        val stringified = stringifier.enstring(new ObjectIdentity(entityType, 
value));
-        val parse = stringifier.destring(stringified, entityType);
-
-        Assertions.assertThat(parse.getKeyAsObject()).isEqualTo(value);
-        Assertions.assertThat(parse.getTargetClass()).isEqualTo(entityType);
-    }
-
-}

Reply via email to