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 2022/09/15 03:58:18 UTC

[isis] branch master updated: ISIS-3210: replace dead code with an resurrection attempt

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 304e397571 ISIS-3210: replace dead code with an resurrection attempt
304e397571 is described below

commit 304e397571806536ac234706c83875361e9ce37f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Sep 15 05:58:10 2022 +0200

    ISIS-3210: replace dead code with an resurrection attempt
    
    - also moves interface MixedInMember to 'exported' spec package; while
    restricting access to specimpl
---
 core/metamodel/src/main/java/module-info.java      |  3 +-
 .../services/metamodel/DomainMemberDefault.java    |  2 +-
 .../core/metamodel/spec/ObjectSpecification.java   |  2 +-
 .../isis/core/metamodel/spec/feature/MixedIn.java  |  2 --
 .../specimpl => spec/feature}/MixedInMember.java   |  4 +--
 .../specloader/specimpl/ObjectActionMixedIn.java   | 13 ++++----
 .../specloader/specimpl/ObjectMemberAbstract.java  |  1 +
 .../specimpl/OneToManyAssociationMixedIn.java      |  1 +
 .../specimpl/OneToOneAssociationMixedIn.java       |  1 +
 .../specloader/specimpl/_MixedInMemberFactory.java | 10 +++---
 .../handlers/DomainObjectInvocationHandler.java    |  2 +-
 .../ui/components/layout/bs/BSGridPanel.java       | 36 ++++++++++------------
 12 files changed, 37 insertions(+), 40 deletions(-)

diff --git a/core/metamodel/src/main/java/module-info.java b/core/metamodel/src/main/java/module-info.java
index d6d5de87fb..35db97fb0e 100644
--- a/core/metamodel/src/main/java/module-info.java
+++ b/core/metamodel/src/main/java/module-info.java
@@ -89,7 +89,8 @@ open module org.apache.isis.core.metamodel {
 
     exports org.apache.isis.core.metamodel.specloader.specimpl
         //TODO don't expose impl. details
-        to org.apache.isis.viewer.wicket.ui, org.apache.isis.core.runtimeservices;
+        to //org.apache.isis.viewer.wicket.ui,
+        org.apache.isis.core.runtimeservices;
 
     exports org.apache.isis.core.metamodel.specloader
         to org.apache.isis.core.runtimeservices,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
index 74b221713c..8b6b114903 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
@@ -48,12 +48,12 @@ import org.apache.isis.core.metamodel.facets.properties.validating.PropertyValid
 import org.apache.isis.core.metamodel.services.devutils.MemberType;
 import org.apache.isis.core.metamodel.spec.Hierarchical;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.feature.MixedInMember;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index 3dd6e8f30d..c68510390e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -70,11 +70,11 @@ import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.object.ManagedObject;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.feature.MixedIn;
+import org.apache.isis.core.metamodel.spec.feature.MixedInMember;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionContainer;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationContainer;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.specloader.specimpl.IntrospectionState;
-import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionMixedIn;
 
 import lombok.NonNull;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/MixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/MixedIn.java
index 4091dc097e..030dfe7c4b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/MixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/MixedIn.java
@@ -20,8 +20,6 @@ package org.apache.isis.core.metamodel.spec.feature;
 
 import java.util.function.Predicate;
 
-import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
-
 public enum MixedIn {
     /** Member search scope including mixed in members.*/
     INCLUDED {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/MixedInMember.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/MixedInMember.java
similarity index 86%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/MixedInMember.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/MixedInMember.java
index a049c15f24..c192ad61b3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/MixedInMember.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/MixedInMember.java
@@ -16,11 +16,9 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.metamodel.specloader.specimpl;
+package org.apache.isis.core.metamodel.spec.feature;
 
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 
 /**
  * Interface indicating an a contributed association or action.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
index cd2df77d74..e62ea5827c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
@@ -34,6 +34,7 @@ import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.interactions.managed.ActionInteractionHead;
 import org.apache.isis.core.metamodel.object.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.feature.MixedInMember;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 
 import lombok.Getter;
@@ -57,7 +58,7 @@ implements MixedInMember {
     /**
      * The domain object type being mixed in to (being supplemented).
      */
-    private final ObjectSpecification mixedInType;
+    private final ObjectSpecification mixeeSpec;
 
     /**
      * Hold facets rather than delegate to the mixin action
@@ -69,12 +70,12 @@ implements MixedInMember {
             final Class<?> mixinType,
             final String mixinMethodName,
             final ObjectActionDefault mixinAction,
-            final ObjectSpecification mixedInType) {
+            final ObjectSpecification mixeeSpec) {
 
         super(Identifier.actionIdentifier(
                     LogicalType.eager(
-                            mixedInType.getCorrespondingClass(),
-                            mixedInType.getLogicalTypeName()),
+                            mixeeSpec.getCorrespondingClass(),
+                            mixeeSpec.getLogicalTypeName()),
                     _MixedInMemberNamingStrategy.determineIdFrom(mixinAction),
                     mixinAction.getFacetedMethod().getFeatureIdentifier().getMemberParameterClassNames()),
                 mixinAction.getFacetedMethod(), false);
@@ -84,7 +85,7 @@ implements MixedInMember {
                 mixinAction.getFacetedMethod());
         this.mixinType = mixinType;
         this.mixinAction = mixinAction;
-        this.mixedInType = mixedInType;
+        this.mixeeSpec = mixeeSpec;
 
         // adjust name if necessary
 
@@ -112,7 +113,7 @@ implements MixedInMember {
 
     @Override
     public ObjectSpecification getDeclaringType() {
-        return mixedInType;
+        return mixeeSpec;
     }
 
     @Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index e8c741067c..e762d69b41 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -52,6 +52,7 @@ import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.object.ManagedObject;
 import org.apache.isis.core.metamodel.object.ManagedObjects;
 import org.apache.isis.core.metamodel.services.command.CommandDtoFactory;
+import org.apache.isis.core.metamodel.spec.feature.MixedInMember;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.schema.cmd.v2.CommandDto;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
index bc03c9603f..e06ec4dbd9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
@@ -37,6 +37,7 @@ import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.object.ManagedObject;
 import org.apache.isis.core.metamodel.services.publishing.ExecutionPublisher;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.feature.MixedInMember;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 
 import lombok.Getter;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
index f753aa6f3a..3260e96155 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
@@ -34,6 +34,7 @@ import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.object.ManagedObject;
 import org.apache.isis.core.metamodel.services.publishing.ExecutionPublisher;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.feature.MixedInMember;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 
 import lombok.Getter;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/_MixedInMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/_MixedInMemberFactory.java
index 63d54e3399..179d6344b2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/_MixedInMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/_MixedInMemberFactory.java
@@ -32,25 +32,25 @@ class _MixedInMemberFactory {
     // -- MIXINS
 
     Function<ObjectActionDefault, ObjectActionMixedIn> mixedInAction(
-            final ObjectSpecification mixinTypeSpec,
+            final ObjectSpecification mixeeSpec,
             final Class<?> mixinType,
             final String mixinMethodName) {
 
         return mixinAction -> new ObjectActionMixedIn(
-                mixinType, mixinMethodName, mixinAction, mixinTypeSpec);
+                mixinType, mixinMethodName, mixinAction, mixeeSpec);
     }
 
     Function<ObjectActionDefault, ObjectAssociation> mixedInAssociation(
-            final ObjectSpecification mixinTypeSpec,
+            final ObjectSpecification mixeeSpec,
             final Class<?> mixinType,
             final String mixinMethodName) {
 
         return mixinAction ->
             mixinAction.getReturnType().isScalar()
                 ? new OneToOneAssociationMixedIn(
-                        mixinAction, mixinTypeSpec, mixinType, mixinMethodName)
+                        mixinAction, mixeeSpec, mixinType, mixinMethodName)
                 : new OneToManyAssociationMixedIn(
-                        mixinAction, mixinTypeSpec, mixinType, mixinMethodName);
+                        mixinAction, mixeeSpec, mixinType, mixinMethodName);
     }
 
 }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
index e6863a953a..035fb11226 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -59,11 +59,11 @@ import org.apache.isis.core.metamodel.object.MmUnwrapUtil;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.MixedIn;
+import org.apache.isis.core.metamodel.spec.feature.MixedInMember;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
 import org.apache.isis.core.metamodel.util.Facets;
 
 import lombok.SneakyThrows;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs/BSGridPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs/BSGridPanel.java
index d774489d4b..7615edc4ac 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs/BSGridPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs/BSGridPanel.java
@@ -26,9 +26,7 @@ import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.isis.applib.layout.grid.bootstrap.BSGrid;
 import org.apache.isis.applib.layout.grid.bootstrap.BSRow;
 import org.apache.isis.core.metamodel.object.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionMixedIn;
+import org.apache.isis.core.metamodel.spec.feature.MixedInMember;
 import org.apache.isis.core.metamodel.util.Facets;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -48,23 +46,21 @@ extends PanelAbstract<ManagedObject, EntityModel> {
     private final BSGrid bsPage;
 
     public static Optional<BSGridPanel> extraContentForMixin(final String id, final ActionModel actionModel) {
-        final ObjectAction action = actionModel.getAction();
-        if(action instanceof ObjectActionMixedIn) {
-            final ObjectActionMixedIn actionMixedIn = (ObjectActionMixedIn) action;
-            final ObjectSpecification mixinSpec = actionMixedIn.getMixinType();
-            if(mixinSpec.isViewModel()) {
-
-                val targetAdapterForMixin = action.realTargetAdapter(actionModel.getActionOwner());
-
-                return Facets.bootstrapGrid(mixinSpec, targetAdapterForMixin)
-                .map(bsGrid->{
-                    val commonContext = actionModel.getMetaModelContext();
-                    val entityModelForMixin =
-                            EntityModel.ofAdapter(commonContext, targetAdapterForMixin);
-                    return new BSGridPanel(id, entityModelForMixin, bsGrid);
-                });
-
-            }
+
+        val action = actionModel.getAction();
+        if(action.isMixedIn()) {
+
+            val mixinSpec = ((MixedInMember)action).getMixinType();
+            val targetAdapterForMixin = action.realTargetAdapter(actionModel.getActionOwner());
+
+            // if we can bootstrap a grid, use it
+            return Facets.bootstrapGrid(mixinSpec, targetAdapterForMixin)
+            .map(bsGrid->{
+                val commonContext = actionModel.getMetaModelContext();
+                val entityModelForMixin =
+                        EntityModel.ofAdapter(commonContext, targetAdapterForMixin);
+                return new BSGridPanel(id, entityModelForMixin, bsGrid);
+            });
         }
         return Optional.empty();
     }