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:09:48 UTC
[isis] 01/02: 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
commit 3635c5abae88fd1682bc68bcc2dd26c1ece2369d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat May 14 10:31:41 2022 +0200
ISIS-3051: remove parameter-peer hackery
---
.../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, 32 insertions(+), 20 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 edee125761..62379efdd0 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,6 +18,7 @@
*/
package org.apache.isis.core.metamodel.facets.param.name;
+import java.util.Optional;
import java.util.regex.Pattern;
import javax.inject.Inject;
@@ -67,6 +68,8 @@ 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 0466b1df25..ad5b713105 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,8 +19,6 @@
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;
@@ -81,10 +79,4 @@ 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 f28267d6f7..ffb5c7141c 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,7 +58,10 @@ 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;
}
@@ -67,7 +70,7 @@ extends ObjectSpecificationPostProcessorAbstract {
.ifPresent(describedAsFacet->{
FacetUtil.addFacetIfPresent(
DescribedAsFacetOnParameterFromType
- .create(describedAsFacet, peerFor(parameter)));
+ .create(describedAsFacet, 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 9e02a71689..2e7d3513a3 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,6 +18,8 @@
*/
package org.apache.isis.core.metamodel.postprocessors.param;
+import java.util.Optional;
+
import javax.inject.Inject;
import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -62,11 +64,16 @@ 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(peerFor(param))));
+ .addFacet(new ActionParameterChoicesFacetFromChoicesFacet(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 b3c9ebd61f..34106ef604 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, peerFor(parameter))));
+ .createWhilePostprocessing(typicalLengthFacet, 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 07705da0df..423dae2ddc 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 FacetHolder {
+public interface Specification extends HasFacetHolder {
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 1badc0083e..44dc8284c6 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,6 +238,4 @@ 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 c88c25c013..74bb790dbc 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 FacetHolder getFacetHolder() {
+ public final 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 47f729141d..67c831fab1 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,6 +52,7 @@ 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;
@@ -127,6 +128,10 @@ 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 dff41e973d..01e44e7cdf 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,7 +40,6 @@ 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;
@@ -73,8 +72,7 @@ import lombok.extern.log4j.Log4j2;
@Log4j2
public class ObjectSpecificationDefault
-extends ObjectSpecificationAbstract
-implements FacetHolder {
+extends ObjectSpecificationAbstract {
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 0de46cd282..d9ebbc9854 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,6 +36,7 @@ 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;
@@ -77,6 +78,11 @@ 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);