You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/01/19 11:09:17 UTC
[11/24] isis git commit: ISIS-785: ObjectAction{Contributee/MixedIn}
now create either OneToOneAction{ContributeeMixedIn} or
OneToManyAction{Contributee/MixedIn} as appropriate...
ISIS-785: ObjectAction{Contributee/MixedIn} now create either OneToOneAction{ContributeeMixedIn} or OneToManyAction{Contributee/MixedIn} as appropriate...
.. using similar logic to that in ObjectActionDefault.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/4639eab2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/4639eab2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/4639eab2
Branch: refs/heads/maint-1.13.3
Commit: 4639eab23db11cc858f0722694a88bc84eee20e7
Parents: 30d23e0
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Jan 18 11:28:33 2017 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Jan 18 11:28:33 2017 +0000
----------------------------------------------------------------------
.../specimpl/ObjectActionContributee.java | 20 +++++++++++++++-----
.../specimpl/ObjectActionDefault.java | 16 ++++++----------
.../specimpl/ObjectActionMixedIn.java | 19 +++++++++++++++----
3 files changed, 36 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/4639eab2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
index 1e74b24..0d3fc46 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
@@ -32,6 +32,8 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.TypedHolder;
import org.apache.isis.core.metamodel.interactions.InteractionUtils;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
@@ -111,8 +113,9 @@ public class ObjectActionContributee extends ObjectActionDefault implements Cont
}
final List<ObjectActionParameter> serviceParameters = serviceAction.getParameters();
- final List<ObjectActionParameter> contributeeParameters = Lists.newArrayList();
+ final List<FacetedMethodParameter> paramPeers = getFacetedMethod().getParameters();
+ final List<ObjectActionParameter> contributeeParameters = Lists.newArrayList();
int contributeeParamNum = 0;
for (int serviceParamNum = 0; serviceParamNum < serviceParameters.size(); serviceParamNum++ ) {
@@ -121,13 +124,20 @@ public class ObjectActionContributee extends ObjectActionDefault implements Cont
continue;
}
+ final TypedHolder paramPeer = paramPeers.get(serviceParamNum);
+ final ObjectSpecification specification = ObjectMemberAbstract
+ .getSpecification(getSpecificationLoader(), paramPeer.getType());
+
final ObjectActionParameterAbstract serviceParameter =
(ObjectActionParameterAbstract) serviceParameters.get(serviceParamNum);
- final ObjectActionParameterContributee contributedParam;
- contributedParam = new OneToOneActionParameterContributee(
- getServiceAdapter(), serviceParameter,
- contributeeParamNum, this);
+ final ObjectActionParameterContributee contributedParam =
+ specification.isNotCollection()
+ ? new OneToOneActionParameterContributee(
+ getServiceAdapter(), serviceParameter, contributeeParamNum, this)
+ : new OneToManyActionParameterContributee(
+ getServiceAdapter(), serviceParameter, contributeeParamNum, this);
+
contributeeParameters.add(contributedParam);
contributeeParamNum++;
http://git-wip-us.apache.org/repos/asf/isis/blob/4639eab2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
----------------------------------------------------------------------
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 edae87e..79258f7 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
@@ -191,23 +191,19 @@ public class ObjectActionDefault extends ObjectMemberAbstract implements ObjectA
return parameters;
}
final int parameterCount = getParameterCount();
- final List<ObjectActionParameter> parameters = Lists.newArrayList();
final List<FacetedMethodParameter> paramPeers = getFacetedMethod().getParameters();
- for (int i = 0; i < parameterCount; i++) {
- final TypedHolder paramPeer = paramPeers.get(i);
+ final List<ObjectActionParameter> parameters = Lists.newArrayList();
+ for (int paramNum = 0; paramNum < parameterCount; paramNum++) {
+ final TypedHolder paramPeer = paramPeers.get(paramNum);
- @SuppressWarnings("unused")
final ObjectSpecification specification = ObjectMemberAbstract
.getSpecification(getSpecificationLoader(), paramPeer.getType());
// previously we threw an exception here if the specification represented a collection. No longer!
- final ObjectActionParameter parameter;
- if(specification.isNotCollection()) {
- parameter = new OneToOneActionParameterDefault(i, this, paramPeer);
- } else {
- parameter = new OneToManyActionParameterDefault(i, this, paramPeer);
- }
+ final ObjectActionParameter parameter = specification.isNotCollection() ?
+ new OneToOneActionParameterDefault(paramNum, this, paramPeer) :
+ new OneToManyActionParameterDefault(paramNum, this, paramPeer);
parameters.add(parameter);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/4639eab2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
----------------------------------------------------------------------
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 752ffaa..8b9e963 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
@@ -30,6 +30,8 @@ import org.apache.isis.core.metamodel.consent.InteractionResultSet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.TypedHolder;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
import org.apache.isis.core.metamodel.interactions.InteractionUtils;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
@@ -128,13 +130,22 @@ public class ObjectActionMixedIn extends ObjectActionDefault implements MixedInM
return parameters;
}
final List<ObjectActionParameter> mixinActionParameters = mixinAction.getParameters();
+ final List<FacetedMethodParameter> paramPeers = getFacetedMethod().getParameters();
+
final List<ObjectActionParameter> mixedInParameters = Lists.newArrayList();
- for (ObjectActionParameter mixinActionParameter : mixinActionParameters) {
+ for(int paramNum = 0; paramNum < mixinActionParameters.size(); paramNum++) {
+
final ObjectActionParameterAbstract mixinParameter =
- (ObjectActionParameterAbstract) mixinActionParameter;
- final ObjectActionParameterMixedIn mixedInParameter;
- mixedInParameter = new OneToOneActionParameterMixedIn(mixinParameter, this);
+ (ObjectActionParameterAbstract) mixinActionParameters.get(paramNum);
+
+ final TypedHolder paramPeer = paramPeers.get(paramNum);
+ final ObjectSpecification specification = ObjectMemberAbstract
+ .getSpecification(getSpecificationLoader(), paramPeer.getType());
+
+ final ObjectActionParameterMixedIn mixedInParameter = specification.isNotCollection()
+ ? new OneToOneActionParameterMixedIn(mixinParameter, this)
+ : new OneToManyActionParameterMixedIn(mixinParameter, this);
mixedInParameters.add(mixedInParameter);
}
return mixedInParameters;