You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/04/17 13:49:05 UTC
[isis] branch master updated: ISIS-2340: serialization fixes (part
3)
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 980b4f7 ISIS-2340: serialization fixes (part 3)
980b4f7 is described below
commit 980b4f7912d95b3f8173931241115fdfd6bab84e
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Apr 17 15:48:50 2020 +0200
ISIS-2340: serialization fixes (part 3)
---
.../isis/viewer/wicket/model/links/LinkAndLabel.java | 3 ++-
.../isis/viewer/wicket/model/models/EntityModel.java | 19 ++++++++++++++-----
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index a9e4533..fd2a386 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -92,7 +92,8 @@ public final class LinkAndLabel extends ActionUiModel<AbstractLink> implements S
this.named = target.getNamed();
this.actionHolder = (EntityModel) target.getActionHolder();
// make sure we do this without side-effects
- this.actionHolderSpecId = actionHolder.getTypeOfSpecification().getSpecId();
+ this.actionHolderSpecId = actionHolder.getTypeOfSpecificationId()
+ .orElseThrow(_Exceptions::unexpectedCodeReach);
this.objectActionId = target.getObjectAction().getId();
}
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 93e2268..a1dda83 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.wicket.model.models;
import java.io.Serializable;
import java.util.Map;
+import java.util.Optional;
import javax.annotation.Nullable;
@@ -66,7 +67,7 @@ extends BookmarkableModel<ManagedObject>
implements ObjectAdapterModel, UiHintContainer, ObjectUiModel {
private static final long serialVersionUID = 1L;
-
+
// -- FACTORY METHODS FOR PAGE PARAMETERS
/**
@@ -90,6 +91,7 @@ implements ObjectAdapterModel, UiHintContainer, ObjectUiModel {
}
private final Map<PropertyMemento, ScalarModel> propertyScalarModels;
+
private ObjectMemento adapterMemento;
private ObjectMemento contextAdapterIfAny;
@@ -264,10 +266,17 @@ implements ObjectAdapterModel, UiHintContainer, ObjectUiModel {
*/
@Override
public ObjectSpecification getTypeOfSpecification() {
- if (adapterMemento == null) {
- return null;
- }
- return getSpecificationFor(adapterMemento.getObjectSpecId());
+ return getTypeOfSpecificationId()
+ .map(this::getSpecificationFor)
+ .orElse(null);
+ }
+
+ /**
+ * @implNote free of side-effects, used for serialization
+ */
+ public Optional<ObjectSpecId> getTypeOfSpecificationId() {
+ return Optional.ofNullable(adapterMemento)
+ .map(ObjectMemento::getObjectSpecId);
}
private ObjectSpecification getSpecificationFor(ObjectSpecId objectSpecId) {