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/05/21 07:31:57 UTC

[isis] branch master updated: Revert "ISIS-3051: remove parameter-peer hackery"

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 d7bcf9f8d0 Revert "ISIS-3051: remove parameter-peer hackery"
d7bcf9f8d0 is described below

commit d7bcf9f8d04b906ef277694c8919c2930ad8fbf2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat May 21 09:31:36 2022 +0200

    Revert "ISIS-3051: remove parameter-peer hackery"
    
    This reverts commit 3635c5abae88fd1682bc68bcc2dd26c1ece2369d.
---
 .../param/name/ParameterNameFacetFactoryUsingReflection.java     | 3 ---
 .../postprocessors/ObjectSpecificationPostProcessorAbstract.java | 8 ++++++++
 .../postprocessors/all/DescribedAsFromTypePostProcessor.java     | 7 ++-----
 .../postprocessors/param/ChoicesAndDefaultsPostProcessor.java    | 9 +--------
 .../postprocessors/param/TypicalLengthFromTypePostProcessor.java | 2 +-
 .../java/org/apache/isis/core/metamodel/spec/Specification.java  | 4 ++--
 .../isis/core/metamodel/spec/feature/ObjectActionParameter.java  | 2 ++
 .../specloader/specimpl/ObjectActionParameterAbstract.java       | 2 +-
 .../specloader/specimpl/ObjectSpecificationAbstract.java         | 5 -----
 .../specloader/specimpl/dflt/ObjectSpecificationDefault.java     | 4 +++-
 .../isis/core/metamodel/testspec/ObjectSpecificationStub.java    | 6 ------
 11 files changed, 20 insertions(+), 32 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
index 62379efdd0..edee125761 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
@@ -18,7 +18,6 @@
  */
 package org.apache.isis.core.metamodel.facets.param.name;
 
-import java.util.Optional;
 import java.util.regex.Pattern;
 
 import javax.inject.Inject;
@@ -68,8 +67,6 @@ extends FacetFactoryAbstract {
         val naturalName = StringExtensions.asNaturalName2(parameterName);
         val facetHolder = processParameterContext.getFacetHolder();
 
-
-
         FacetUtil.addFacet(
                 new NamedFacetForParameterUsingReflection(naturalName, facetHolder));
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/ObjectSpecificationPostProcessorAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/ObjectSpecificationPostProcessorAbstract.java
index ad5b713105..0466b1df25 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/ObjectSpecificationPostProcessorAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/ObjectSpecificationPostProcessorAbstract.java
@@ -19,6 +19,8 @@
 package org.apache.isis.core.metamodel.postprocessors;
 
 import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.HasFacetHolder;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.MixedIn;
@@ -79,4 +81,10 @@ implements ObjectSpecificationPostProcessor {
         return objectMemberImpl.getFacetedMethod();
     }
 
+    protected static FacetHolder peerFor(final ObjectActionParameter param) {
+        // TODO: hacky, need to copy facet onto underlying peer, not to the param itself.
+        var paramImpl = (HasFacetHolder) param;
+        return paramImpl.getFacetHolder();
+    }
+
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DescribedAsFromTypePostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DescribedAsFromTypePostProcessor.java
index ffb5c7141c..f28267d6f7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DescribedAsFromTypePostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/DescribedAsFromTypePostProcessor.java
@@ -58,10 +58,7 @@ extends ObjectSpecificationPostProcessorAbstract {
     }
 
     @Override
-    protected void doPostProcess(
-            final ObjectSpecification objectSpecification, 
-            final ObjectAction objectAction, 
-            final ObjectActionParameter parameter) {
+    protected void doPostProcess(final ObjectSpecification objectSpecification, final ObjectAction objectAction, final ObjectActionParameter parameter) {
         if(parameter.containsNonFallbackFacet(ParamDescribedFacet.class)) {
             return;
         }
@@ -70,7 +67,7 @@ extends ObjectSpecificationPostProcessorAbstract {
         .ifPresent(describedAsFacet->{
             FacetUtil.addFacetIfPresent(
                     DescribedAsFacetOnParameterFromType
-                    .create(describedAsFacet, parameter));
+                    .create(describedAsFacet, peerFor(parameter)));
         });
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java
index 2e7d3513a3..9e02a71689 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java
@@ -18,8 +18,6 @@
  */
 package org.apache.isis.core.metamodel.postprocessors.param;
 
-import java.util.Optional;
-
 import javax.inject.Inject;
 
 import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -64,16 +62,11 @@ extends ObjectSpecificationPostProcessorAbstract {
             final ObjectSpecification objectSpecification,
             final ObjectAction objectAction,
             final ObjectActionParameter param) {
-
-        val paramAsHolder = param;
-
-
-
         if(!hasMemberLevelChoices(param)) {
             param.getElementType()
             .lookupNonFallbackFacet(ChoicesFacet.class)
             .ifPresent(choicesFacet -> FacetUtil
-                    .addFacet(new ActionParameterChoicesFacetFromChoicesFacet(param)));
+                    .addFacet(new ActionParameterChoicesFacetFromChoicesFacet(peerFor(param))));
         }
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/TypicalLengthFromTypePostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/TypicalLengthFromTypePostProcessor.java
index 34106ef604..b3c9ebd61f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/TypicalLengthFromTypePostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/TypicalLengthFromTypePostProcessor.java
@@ -53,7 +53,7 @@ extends ObjectSpecificationPostProcessorAbstract {
             .ifPresent(typicalLengthFacet ->
                     FacetUtil.addFacet(
                             TypicalLengthFacetOnParameterFromType
-                            .createWhilePostprocessing(typicalLengthFacet, parameter)));
+                            .createWhilePostprocessing(typicalLengthFacet, peerFor(parameter))));
     }
 
     @Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Specification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Specification.java
index 423dae2ddc..07705da0df 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Specification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Specification.java
@@ -18,8 +18,8 @@
  */
 package org.apache.isis.core.metamodel.spec;
 
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.HasFacetHolder;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeature;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
@@ -36,7 +36,7 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
  * Introduces so that viewers can deal with abstract Instances of said.
  *
  */
-public interface Specification extends HasFacetHolder {
+public interface Specification extends FacetHolder {
 
     FeatureType getFeatureType();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
index 44dc8284c6..1badc0083e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
@@ -238,4 +238,6 @@ extends ObjectFeature, CurrentHolder {
         return ActionParameterMemento.forActionParameter(this);
     }
 
+
+
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index 74bb790dbc..c88c25c013 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -164,7 +164,7 @@ implements
     // -- FacetHolder
 
     @Override
-    public final FacetHolder getFacetHolder() {
+    public FacetHolder getFacetHolder() {
         // that is the faceted method parameter
         return parentAction.getFacetedMethod().getParameters().getElseFail(parameterIndex);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 67c831fab1..47f729141d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -52,7 +52,6 @@ import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
 import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
@@ -128,10 +127,6 @@ implements ObjectSpecification {
         }
     }
 
-    @Override
-    public FacetHolder getFacetHolder() {
-        return this;
-    }
 
     // -- FIELDS
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 01e44e7cdf..dff41e973d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -40,6 +40,7 @@ import org.apache.isis.commons.internal.reflection._Reflect;
 import org.apache.isis.core.metamodel.commons.StringExtensions;
 import org.apache.isis.core.metamodel.commons.ToString;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
@@ -72,7 +73,8 @@ import lombok.extern.log4j.Log4j2;
 
 @Log4j2
 public class ObjectSpecificationDefault
-extends ObjectSpecificationAbstract {
+extends ObjectSpecificationAbstract
+implements FacetHolder {
 
     private static String determineShortName(final Class<?> introspectedClass) {
         final String name = introspectedClass.getName();
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index d9ebbc9854..0de46cd282 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -36,7 +36,6 @@ import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderAbstract;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.WhereValueFacet;
@@ -78,11 +77,6 @@ implements ObjectSpecification {
     private final Class<?> correspondingClass;
     private final String name;
 
-    @Override
-    public FacetHolder getFacetHolder() {
-        return this;
-    }
-
     @Override
     public Optional<? extends ObjectMember> getMember(final String memberId) {
         val objectAction = getAction(memberId);