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 2021/09/07 11:42:06 UTC
[isis] branch master updated: ISIS-2774: purge ActionChoicesFacet
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 364530c ISIS-2774: purge ActionChoicesFacet
364530c is described below
commit 364530ca314bf9b6c4fcdfaffa310b731c5fc560
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Sep 7 13:41:57 2021 +0200
ISIS-2774: purge ActionChoicesFacet
---
.../facets/fallback/ActionChoicesFacetNone.java | 41 ----------------
.../facets/fallback/FallbackFacetFactory.java | 1 -
.../facets/param/choices/ActionChoicesFacet.java | 38 ---------------
.../param/choices/ActionChoicesFacetAbstract.java | 41 ----------------
...ctionParameterChoicesFacetViaMethodFactory.java | 8 ----
.../services/metamodel/DomainMemberDefault.java | 20 ++++----
.../specloader/specimpl/ObjectActionDefault.java | 55 ++++++++--------------
7 files changed, 29 insertions(+), 175 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java
deleted file mode 100644
index 6d08b69..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.core.metamodel.facets.fallback;
-
-import org.apache.isis.commons.collections.CanVector;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacetAbstract;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-
-public class ActionChoicesFacetNone
-extends ActionChoicesFacetAbstract {
-
- public ActionChoicesFacetNone(final FacetHolder holder) {
- super(holder, Precedence.FALLBACK);
- }
-
- @Override
- public CanVector<ManagedObject> getChoices(
- final ManagedObject inObject,
- final InteractionInitiatedBy interactionInitiatedBy) {
- return CanVector.empty();
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
index 74d0e4a..a9efa54 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
@@ -94,7 +94,6 @@ public class FallbackFacetFactory extends FacetFactoryAbstract {
}
if (featureType.isAction()) {
addFacet(new ActionDefaultsFacetNone(facetedMethod));
- addFacet(new ActionChoicesFacetNone(facetedMethod));
}
if (featureType.isCollection()) {
addFacet(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacet.java
deleted file mode 100644
index d91167d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacet.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.core.metamodel.facets.param.choices;
-
-import org.apache.isis.commons.collections.CanVector;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-
-/**
- * Obtain choices for each of the parameters of the action.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to invoking the
- * <tt>choicesXxx</tt> support method for an action.
- */
-public interface ActionChoicesFacet extends Facet {
-
- public CanVector<ManagedObject> getChoices(
- final ManagedObject inObject,
- final InteractionInitiatedBy interactionInitiatedBy);
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacetAbstract.java
deleted file mode 100644
index eb598b9..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacetAbstract.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.core.metamodel.facets.param.choices;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-
-public abstract class ActionChoicesFacetAbstract
-extends FacetAbstract
-implements ActionChoicesFacet {
-
- private static final Class<? extends Facet> type() {
- return ActionChoicesFacet.class;
- }
-
- public ActionChoicesFacetAbstract(final FacetHolder holder) {
- super(type(), holder);
- }
-
- public ActionChoicesFacetAbstract(final FacetHolder holder, final Facet.Precedence precedence) {
- super(type(), holder, precedence);
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
index 85949dc..c6e562e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
@@ -22,14 +22,12 @@ import java.util.EnumSet;
import javax.inject.Inject;
-import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
import org.apache.isis.core.config.progmodel.ProgrammingModelConstants.MemberSupportPrefix;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.ParameterSupport;
import org.apache.isis.core.metamodel.facets.ParameterSupport.ParamSupportingMethodSearchRequest.ReturnType;
import org.apache.isis.core.metamodel.facets.ParameterSupport.SearchAlgorithm;
-import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacet;
import org.apache.isis.core.metamodel.methods.MemberSupportFacetFactoryAbstract;
import lombok.val;
@@ -76,12 +74,6 @@ extends MemberSupportFacetFactoryAbstract {
processMethodContext.removeMethod(choicesMethod);
- if (facetedMethod.containsNonFallbackFacet(ActionChoicesFacet.class)) {
- val cls = processMethodContext.getCls();
- throw new MetaModelException(cls + " uses both old and new choices syntax - "
- + "must use one or other");
- }
-
// add facets directly to parameters, not to actions
val paramAsHolder = parameters.get(paramIndex);
val ppmFactory = searchResult.getPpmFactory();
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 d830f06..d60f9eb 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
@@ -40,7 +40,6 @@ import org.apache.isis.core.metamodel.facets.actions.validate.ActionValidationFa
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
-import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacet;
import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet;
import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacet;
@@ -73,19 +72,19 @@ public class DomainMemberDefault implements DomainMember {
throw _Exceptions.unexpectedCodeReach();
}
- DomainMemberDefault(ObjectSpecification spec, OneToOneAssociation property) {
+ DomainMemberDefault(final ObjectSpecification spec, final OneToOneAssociation property) {
this.spec = spec;
this.member = property;
this.memberType = MemberType.PROPERTY;
}
- DomainMemberDefault(ObjectSpecification spec, OneToManyAssociation collection) {
+ DomainMemberDefault(final ObjectSpecification spec, final OneToManyAssociation collection) {
this.spec = spec;
this.member = collection;
this.memberType = MemberType.COLLECTION;
}
- DomainMemberDefault(ObjectSpecification spec, ObjectAction action) {
+ DomainMemberDefault(final ObjectSpecification spec, final ObjectAction action) {
this.spec = spec;
this.member = this.action = action;
this.memberType = MemberType.ACTION;
@@ -183,6 +182,7 @@ public class DomainMemberDefault implements DomainMember {
return interpretRowAndFacet(PropertyChoicesFacet.class);
case COLLECTION:
return "";
+ case ACTION:
default:
val parameters = this.action.getParameters();
final SortedSet<String> interpretations = _Sets.newTreeSet();
@@ -190,9 +190,9 @@ public class DomainMemberDefault implements DomainMember {
final ActionParameterChoicesFacet facet = param.getFacet(ActionParameterChoicesFacet.class);
addIfNotEmpty(interpretFacet(facet), interpretations);
}
- return !interpretations.isEmpty() ?
- interpretations.stream().collect(Collectors.joining(";")) :
- interpretRowAndFacet(ActionChoicesFacet.class);
+ return interpretations.isEmpty()
+ ? ""
+ : interpretations.stream().collect(Collectors.joining(";"));
}
}
@@ -228,7 +228,7 @@ public class DomainMemberDefault implements DomainMember {
}
return !interpretations.isEmpty()
? String.join(";", interpretations)
- : interpretRowAndFacet(ActionDefaultsFacet.class);
+ : interpretRowAndFacet(ActionDefaultsFacet.class);
}
}
@@ -246,13 +246,13 @@ public class DomainMemberDefault implements DomainMember {
// -- COMPARATOR
@Override
- public int compareTo(DomainMember o) {
+ public int compareTo(final DomainMember o) {
return comparator.compare(this, o);
}
// -- HELPER
- private String interpretRowAndFacet(Class<? extends Facet> facetClass) {
+ private String interpretRowAndFacet(final Class<? extends Facet> facetClass) {
final Facet facet = member.getFacet(facetClass);
return interpretFacet(facet);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
index 216840a..570695a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
@@ -50,7 +50,6 @@ import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInv
import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
-import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacet;
import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
import org.apache.isis.core.metamodel.interactions.ActionUsabilityContext;
import org.apache.isis.core.metamodel.interactions.ActionValidityContext;
@@ -478,46 +477,30 @@ implements ObjectAction {
final int parameterCount = getParameterCount();
CanVector<ManagedObject> paramChoicesVector;
- final ActionChoicesFacet facet = getFacet(ActionChoicesFacet.class);
val parameters = getParameters();
- if (!facet.getPrecedence().isFallback()) {
- // using the old choicesXxx() approach
- paramChoicesVector = facet.getChoices(target,
- interactionInitiatedBy);
-
- // if no options, or not the right number of pojos, then default
- if (paramChoicesVector == null) {
- paramChoicesVector = new CanVector<>(parameterCount);
- } else if (paramChoicesVector.size() != parameterCount) {
- throw new DomainModelException(
- String.format("Choices array of incompatible size; expected %d elements, but was %d for %s",
- parameterCount, paramChoicesVector.size(), facet));
- }
- } else {
// use the new choicesNXxx approach for each param in turn
// (the reflector will have made sure both aren't installed).
- val emptyPendingArgs = Can.<ManagedObject>empty();
- paramChoicesVector = new CanVector<>(parameterCount);
- for (int i = 0; i < parameterCount; i++) {
- val param = parameters.getElseFail(i);
- val paramSpec = param.getSpecification();
- val paramFacet = param.getFacet(ActionParameterChoicesFacet.class);
-
- if (paramFacet != null && !paramFacet.getPrecedence().isFallback()) {
-
- val visibleChoices = paramFacet.getChoices(
- paramSpec,
- interactionHead(target),
- emptyPendingArgs,
- interactionInitiatedBy);
- ObjectActionParameterAbstract.checkChoicesOrAutoCompleteType(
- getSpecificationLoader(), visibleChoices, paramSpec);
- paramChoicesVector.set(i, visibleChoices);
- } else {
- paramChoicesVector.set(i, Can.empty());
- }
+ val emptyPendingArgs = Can.<ManagedObject>empty();
+ paramChoicesVector = new CanVector<>(parameterCount);
+ for (int i = 0; i < parameterCount; i++) {
+ val param = parameters.getElseFail(i);
+ val paramSpec = param.getSpecification();
+ val paramFacet = param.getFacet(ActionParameterChoicesFacet.class);
+
+ if (paramFacet != null && !paramFacet.getPrecedence().isFallback()) {
+
+ val visibleChoices = paramFacet.getChoices(
+ paramSpec,
+ interactionHead(target),
+ emptyPendingArgs,
+ interactionInitiatedBy);
+ ObjectActionParameterAbstract.checkChoicesOrAutoCompleteType(
+ getSpecificationLoader(), visibleChoices, paramSpec);
+ paramChoicesVector.set(i, visibleChoices);
+ } else {
+ paramChoicesVector.set(i, Can.empty());
}
}
return paramChoicesVector;