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();
}