This is an automated email from the ASF dual-hosted git repository.
danhaywood 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 904dc486ea master: ISIS-3101: changes signature of
IdStringifier#destring - second param can be null, eg if used to reconstruct
view model rather than an entity
904dc486ea is described below
commit 904dc486eabd4c8ffe2e052a6f27d4dc8c19c303
Author: Dan Haywood <[email protected]>
AuthorDate: Sun Jul 31 11:00:51 2022 +0100
master: ISIS-3101: changes signature of IdStringifier#destring - second
param can be null, eg if used to reconstruct view model rather than an entity
---
.../isis/applib/services/bookmark/IdStringifier.java | 14 ++++++++------
.../bookmark/idstringifiers/IdStringifierForCharacter.java | 2 +-
.../idstringifiers/IdStringifierForSerializable.java | 2 +-
.../bookmark/idstringifiers/IdStringifierForString.java | 2 +-
.../executionlog/jdo/dom/ExecutionLogEntryPK.java | 2 +-
.../executionlog/jpa/dom/ExecutionLogEntryPK.java | 2 +-
.../executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java | 2 +-
.../executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java | 2 +-
.../metamodel/facets/entity/IdStringifierForCharId.java | 6 +++---
.../facets/entity/IdStringifierForCharIdentity.java | 6 +++---
.../facets/entity/IdStringifierForDatastoreId.java | 2 +-
.../facets/entity/IdStringifierForDatastoreIdImpl.java | 4 ++--
.../entity/IdStringifierForDatastoreUniqueLongId.java | 2 +-
.../metamodel/facets/entity/IdStringifierForObjectId.java | 8 ++++----
.../facets/entity/IdStringifierForObjectIdentity.java | 8 ++++----
.../metamodel/facets/entity/IdStringifierForStringId.java | 6 +++---
.../facets/entity/IdStringifierForStringIdentity.java | 6 +++---
17 files changed, 39 insertions(+), 37 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 a516cccc83..50074aac9b 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
@@ -75,11 +75,13 @@ public interface IdStringifier<T> {
* 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>.
+ * @param targetEntityClassIfAny - 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>.
+ * For Bookmarks of view models, there
won't be any targetEntityClass, so this parameter
+ * could be null.
*/
- T destring(@NonNull String stringified, @NonNull Class<?>
targetEntityClass);
+ T destring(@NonNull String stringified, Class<?> targetEntityClassIfAny);
abstract class Abstract<T> implements IdStringifier<T> {
@@ -146,9 +148,9 @@ public interface IdStringifier<T> {
@Override
public final T destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
val suffix = removePrefix(stringified);
- return doDestring(suffix, targetEntityClass);
+ return doDestring(suffix, targetEntityClassIfAny);
}
/**
diff --git
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForCharacter.java
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForCharacter.java
index 80eb05b834..0cfb3b7901 100644
---
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForCharacter.java
+++
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForCharacter.java
@@ -62,7 +62,7 @@ public class IdStringifierForCharacter extends
IdStringifier.Abstract<Character>
@Override
public Character destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
if(stringified.startsWith(REGULAR_PREFIX)) {
return stringified.substring(REGULAR_PREFIX.length()).charAt(0);
}
diff --git
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForSerializable.java
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForSerializable.java
index a7d31638ee..8f0646d64d 100644
---
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForSerializable.java
+++
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForSerializable.java
@@ -79,7 +79,7 @@ public class IdStringifierForSerializable extends
IdStringifier.Abstract<Seriali
@Override
public Serializable destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
if (_Strings.isEmpty(stringified)) {
return null;
}
diff --git
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForString.java
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForString.java
index 66774f9193..2796e5b109 100644
---
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForString.java
+++
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForString.java
@@ -61,7 +61,7 @@ public class IdStringifierForString extends
IdStringifier.Abstract<String> {
@Override
public String destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
if(stringified.startsWith(REGULAR_PREFIX)) {
return stringified.substring(REGULAR_PREFIX.length());
}
diff --git
a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
index 427cac1586..52393b37b2 100644
---
a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
+++
b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
@@ -72,7 +72,7 @@ public class ExecutionLogEntryPK implements Serializable {
@Override
public ExecutionLogEntryPK destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
return new ExecutionLogEntryPK(stringified);
}
}
diff --git
a/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
b/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
index 15c2e3c412..f948781794 100644
---
a/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
+++
b/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
@@ -84,7 +84,7 @@ public class ExecutionLogEntryPK implements Serializable {
@Override
public ExecutionLogEntryPK destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
return new ExecutionLogEntryPK(stringified);
}
}
diff --git
a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
index e9a367c9b2..855da96b67 100644
---
a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
+++
b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
@@ -72,7 +72,7 @@ public class ExecutionOutboxEntryPK implements Serializable {
@Override
public ExecutionOutboxEntryPK destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
return new ExecutionOutboxEntryPK(stringified);
}
}
diff --git
a/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
b/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
index 398657596f..7c289d4157 100644
---
a/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
+++
b/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
@@ -84,7 +84,7 @@ public class ExecutionOutboxEntryPK implements Serializable {
@Override
public ExecutionOutboxEntryPK destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
return new ExecutionOutboxEntryPK(stringified);
}
}
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/metamodel/facets/entity/IdStringifierForCharId.java
index 5a1b8c1fe8..14d9062bb9 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/metamodel/facets/entity/IdStringifierForCharId.java
@@ -59,8 +59,8 @@ public class IdStringifierForCharId extends
IdStringifier.Abstract<CharId> {
@Override
public CharId destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
- val idValue = idStringifierForCharacter.destring(stringified,
targetEntityClass);
- return new CharId(targetEntityClass, idValue);
+ final Class<?> targetEntityClassIfAny) {
+ val idValue = idStringifierForCharacter.destring(stringified,
targetEntityClassIfAny);
+ return new CharId(targetEntityClassIfAny, idValue);
}
}
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/metamodel/facets/entity/IdStringifierForCharIdentity.java
index 095830df77..2bdf7e0d9b 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/metamodel/facets/entity/IdStringifierForCharIdentity.java
@@ -59,8 +59,8 @@ public class IdStringifierForCharIdentity extends
IdStringifier.Abstract<CharIde
@Override
public CharIdentity destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
- val idValue = idStringifierForCharacter.destring(stringified,
targetEntityClass);
- return new CharIdentity(targetEntityClass, idValue);
+ final Class<?> targetEntityClassIfAny) {
+ val idValue = idStringifierForCharacter.destring(stringified,
targetEntityClassIfAny);
+ return new CharIdentity(targetEntityClassIfAny, idValue);
}
}
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/metamodel/facets/entity/IdStringifierForDatastoreId.java
index 628998c2fd..bc54955156 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/metamodel/facets/entity/IdStringifierForDatastoreId.java
@@ -56,7 +56,7 @@ public class IdStringifierForDatastoreId extends
IdStringifier.Abstract<Datastor
@Override
public DatastoreId destring(
final @NonNull String stringified,
- final @Nullable Class<?> targetEntityClass) {
+ final @Nullable Class<?> targetEntityClassIfAny) {
int idx = stringified.indexOf(SEPARATOR);
String clsName = stringified.substring(0, idx);
String keyStr = stringified.substring(idx + 1);
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/metamodel/facets/entity/IdStringifierForDatastoreIdImpl.java
index de6449efd9..c341c3842f 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/metamodel/facets/entity/IdStringifierForDatastoreIdImpl.java
@@ -49,9 +49,9 @@ public class IdStringifierForDatastoreIdImpl extends
IdStringifier.Abstract<Data
@Override
public DatastoreIdImpl destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
// enString invoked toString() on the original key; invoking
toString() on its stringified form does not change it
- val proto = new DatastoreIdImpl(targetEntityClass.getName(),
stringified);
+ val proto = new DatastoreIdImpl(targetEntityClassIfAny.getName(),
stringified);
// now render in the form that the DataStoreImpl constructor expects;
it will take it apart itself.
val str = proto.toString();
return new DatastoreIdImpl(str);
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/metamodel/facets/entity/IdStringifierForDatastoreUniqueLongId.java
index b56d1a6ed2..193146c586 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/metamodel/facets/entity/IdStringifierForDatastoreUniqueLongId.java
@@ -47,7 +47,7 @@ public class IdStringifierForDatastoreUniqueLongId extends
IdStringifier.Abstrac
@Override
public DatastoreUniqueLongId destring(
final @NonNull String stringified,
- final @Nullable Class<?> targetEntityClass) {
+ final @Nullable Class<?> targetEntityClassIfAny) {
return new DatastoreUniqueLongId(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 07319b83b9..e3d122019c 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
@@ -68,11 +68,11 @@ public class IdStringifierForObjectId extends
IdStringifier.Abstract<ObjectId> {
@Override
public ObjectId destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
if (idStringifierForUuid.recognizes(stringified)) {
- UUID uuid = idStringifierForUuid.destring(stringified,
targetEntityClass);
- return new ObjectId(targetEntityClass, uuid);
+ UUID uuid = idStringifierForUuid.destring(stringified,
targetEntityClassIfAny);
+ return new ObjectId(targetEntityClassIfAny, uuid);
}
- return new ObjectId(targetEntityClass, stringified);
+ 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 01dd261733..a27c9f0668 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
@@ -68,11 +68,11 @@ public class IdStringifierForObjectIdentity extends
IdStringifier.Abstract<Objec
@Override
public ObjectIdentity destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final Class<?> targetEntityClassIfAny) {
if (idStringifierForUuid.recognizes(stringified)) {
- UUID uuid = idStringifierForUuid.destring(stringified,
targetEntityClass);
- return new ObjectIdentity(targetEntityClass, uuid);
+ UUID uuid = idStringifierForUuid.destring(stringified,
targetEntityClassIfAny);
+ return new ObjectIdentity(targetEntityClassIfAny, uuid);
}
- return new ObjectIdentity(targetEntityClass, stringified);
+ return new ObjectIdentity(targetEntityClassIfAny, stringified);
}
}
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/metamodel/facets/entity/IdStringifierForStringId.java
index 83046b1b45..620d7338c2 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/metamodel/facets/entity/IdStringifierForStringId.java
@@ -59,8 +59,8 @@ public class IdStringifierForStringId extends
IdStringifier.Abstract<StringIdent
@Override
public StringIdentity destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
- val idValue = idStringifierForString.destring(stringified,
targetEntityClass);
- return new StringIdentity(targetEntityClass, idValue);
+ final Class<?> targetEntityClassIfAny) {
+ val idValue = idStringifierForString.destring(stringified,
targetEntityClassIfAny);
+ return new StringIdentity(targetEntityClassIfAny, idValue);
}
}
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/metamodel/facets/entity/IdStringifierForStringIdentity.java
index e5a759d856..7da2115316 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/metamodel/facets/entity/IdStringifierForStringIdentity.java
@@ -59,8 +59,8 @@ public class IdStringifierForStringIdentity extends
IdStringifier.Abstract<Strin
@Override
public StringIdentity destring(
final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
- val idValue = idStringifierForString.destring(stringified,
targetEntityClass);
- return new StringIdentity(targetEntityClass, idValue);
+ final Class<?> targetEntityClassIfAny) {
+ val idValue = idStringifierForString.destring(stringified,
targetEntityClassIfAny);
+ return new StringIdentity(targetEntityClassIfAny, idValue);
}
}