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 05:47:22 UTC

[isis] 01/02: ISIS-2340: more cleanup

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

commit e6fd864a9d4ace2739df64f9d3c639d94d8bef31
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri May 15 07:41:48 2020 +0200

    ISIS-2340: more cleanup
---
 .../wicket/model/models/ManagedObjectModel.java    | 26 ++++++++++++++++------
 .../viewer/wicket/model/models/ScalarModel.java    | 25 ---------------------
 2 files changed, 19 insertions(+), 32 deletions(-)

diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
index 6926687..3fed95f 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
@@ -26,6 +26,7 @@ import javax.annotation.Nullable;
 import org.apache.isis.applib.annotation.BookmarkPolicy;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.core.commons.internal.base._Casts;
+import org.apache.isis.core.commons.internal.collections._Collections;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -81,17 +82,28 @@ extends ModelAbstract<ManagedObject> {
 
         super.setObject(adapter);
 
-        if(adapter.getSpecification().isParentedOrFreeCollection()) {
-            val pojo = adapter.getPojo();
-            memento = super.getMementoService()
-                    .mementoForPojos(_Casts.uncheckedCast(pojo), getTypeOfSpecificationId()
-                            .orElseGet(()->adapter.getElementSpecification().get().getSpecId()));
+        if(_Collections.isCollectionOrArrayOrCanType(adapter.getPojo().getClass())) {
+            setObjectCollection(adapter);
         } else {
-
             memento = super.getMementoService().mementoForObject(adapter);
         }
     }
     
+    public void setObjectCollection(final ManagedObject adapter) {
+        
+        if(ManagedObject.isNullOrUnspecifiedOrEmpty(adapter)) {
+            super.setObject(null);
+            return;
+        }
+
+        super.setObject(adapter);
+        
+        val pojos = adapter.getPojo();
+        memento = super.getMementoService()
+                .mementoForPojos(_Casts.uncheckedCast(pojos), getTypeOfSpecificationId()
+                        .orElseGet(()->adapter.getElementSpecification().get().getSpecId()));
+    }
+    
     public final Bookmark asHintingBookmarkIfSupported() {
         return memento!=null
                 ? memento.asHintingBookmarkIfSupported()
@@ -112,7 +124,7 @@ extends ModelAbstract<ManagedObject> {
     
     /**
      * free of side-effects, used for serialization
-     * @implNote overriding this must be consistent with {@link #getTypeOfSpecificationId()}
+     * @implNote overriding this must be consistent with {@link #getTypeOfSpecification()}
      */
     public Optional<ObjectSpecId> getTypeOfSpecificationId() {
         return Optional.ofNullable(memento)
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 6d0274e..3781359 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -176,29 +176,6 @@ implements ScalarUiModel, LinksProvider, FormExecutorContext {
         return adapter.titleString(null);
     }
 
-    @Override
-    public void setObject(ManagedObject adapter) {
-        if(adapter == null) {
-            super.setObject(null);
-            return;
-        }
-
-        final Object pojo = adapter.getPojo();
-        if(pojo == null) {
-            super.setObject(null);
-            return;
-        }
-
-        if(isCollection()) {
-            val memento = super.getMementoService()
-                    .mementoForPojos(_Casts.uncheckedCast(pojo), getTypeOfSpecification().getSpecId());
-                    
-            super.memento(memento); // associated value
-        } else {
-            super.setObject(adapter); // associated value
-        }
-    }
-
     public void setObjectAsString(final String enteredText) {
         // parse text to get adapter
         ParseableFacet parseableFacet = getTypeOfSpecification().getFacet(ParseableFacet.class);
@@ -223,8 +200,6 @@ implements ScalarUiModel, LinksProvider, FormExecutorContext {
             setPending(memento);
         }
     }
-
-
     
     public boolean whetherHidden() {
         final Where where = getRenderingHint().asWhere();