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/05/15 10:06:15 UTC

[isis] branch master updated: ISIS-2340: further simplify PendingModel

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 54c0102  ISIS-2340: further simplify PendingModel
54c0102 is described below

commit 54c0102251ed45a11caeed9c411d0397e39d852a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri May 15 12:06:06 2020 +0200

    ISIS-2340: further simplify PendingModel
---
 .../viewer/wicket/model/models/PendingModel.java   | 51 ++++++----------------
 1 file changed, 14 insertions(+), 37 deletions(-)

diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PendingModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PendingModel.java
index c52e092..769d970 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PendingModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/PendingModel.java
@@ -18,28 +18,21 @@
  */
 package org.apache.isis.viewer.wicket.model.models;
 
-import java.util.stream.Collectors;
-
 import org.apache.wicket.model.Model;
 
-import org.apache.isis.core.commons.internal.base._NullSafe;
-import org.apache.isis.core.commons.internal.collections._Collections;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
 import org.apache.isis.core.webapp.context.memento.ObjectMemento;
-import org.apache.isis.core.webapp.context.memento.ObjectMementoService;
 
 import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
 import lombok.val;
-import lombok.extern.log4j.Log4j2;
 
 @RequiredArgsConstructor
-@Log4j2
 final class PendingModel extends Model<ObjectMemento> {
     private static final long serialVersionUID = 1L;
 
-    @NonNull private final ManagedObjectModel pendingValueModel;
+    @NonNull private final ManagedObjectModel ownerModel;
 
     /**
      * Whether pending has been set (could have been set to null)
@@ -48,45 +41,31 @@ final class PendingModel extends Model<ObjectMemento> {
     /**
      * The new value (could be set to null; hasPending is used to distinguish).
      */
-    private ObjectMemento pending;
+    private ObjectMemento pendingMemento;
 
     @Override
     public ObjectMemento getObject() {
         if (hasPending) {
-            return pending;
-        }
-        
-        if(pendingValueModel.memento()!=null) {
-            return pendingValueModel.memento();
-        }
-        
-        //XXX [a.huber] as I don't understand the big picture here, given newly introduced branch above,
-        // there might be a slight chance, that this is dead code anyway ...
-        val adapter = pendingValueModel.getObject();
-        val pojo = adapter.getPojo();
-        if(pojo!=null && _Collections.isCollectionOrArrayOrCanType(pojo.getClass())) {
-            val specId = pendingValueModel.getTypeOfSpecification().getSpecId();
-            log.warn("potentially a bug, wild guess fix for non-scalar %s", specId);
-            val pojos = _NullSafe.streamAutodetect(pojo)
-                    .collect(Collectors.<Object>toList());
-            return getMementoService().mementoForPojos(pojos, specId);
+            return pendingMemento;
         }
-        return getMementoService().mementoForObject(adapter);
+        return ownerModel.memento();
     }
 
     @Override
     public void setObject(final ObjectMemento adapterMemento) {
-        pending = adapterMemento;
+        pendingMemento = adapterMemento;
         hasPending = true;
     }
 
     public void clearPending() {
         this.hasPending = false;
-        this.pending = null;
+        this.pendingMemento = null;
     }
 
     public ManagedObject getPendingElseCurrentAdapter() {
-        return hasPending ? getPendingAdapter() : pendingValueModel.getObject();
+        return hasPending 
+                ? getPendingAdapter() 
+                : ownerModel.getObject();
     }
     
     ManagedObject getPendingAdapter() {
@@ -95,20 +74,18 @@ final class PendingModel extends Model<ObjectMemento> {
     }
 
     ObjectMemento getPendingMemento() {
-        return pending;
+        return pendingMemento;
     }
 
     void setPendingMemento(ObjectMemento selectedAdapterMemento) {
-        this.pending = selectedAdapterMemento;
+        this.pendingMemento = selectedAdapterMemento;
         hasPending=true;
     }
     
-    private IsisWebAppCommonContext getCommonContext() {
-        return pendingValueModel.getCommonContext();
-    }
+    // -- HELPER
     
-    private ObjectMementoService getMementoService() {
-        return pendingValueModel.getMementoService();
+    private IsisWebAppCommonContext getCommonContext() {
+        return ownerModel.getCommonContext();
     }