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:18 UTC
[12/24] isis git commit: ISIS-785: implements getCollectionSemantics
for OneToManyActionParameterXxx classes (generalizing similar code in
OneToManyAssociation).
ISIS-785: implements getCollectionSemantics for OneToManyActionParameterXxx classes (generalizing similar code in OneToManyAssociation).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5b182098
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5b182098
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5b182098
Branch: refs/heads/maint-1.13.3
Commit: 5b182098e9d4d95de91beff79b07dbbd3e478781
Parents: 4639eab
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Jan 18 11:59:41 2017 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Jan 18 11:59:41 2017 +0000
----------------------------------------------------------------------
.../spec/feature/OneToManyFeature.java | 17 +++++++++++++++++
.../OneToManyActionParameterContributee.java | 4 +++-
.../OneToManyActionParameterDefault.java | 6 +++++-
.../OneToManyActionParameterMixedIn.java | 4 +++-
.../specimpl/OneToManyAssociationDefault.java | 20 ++------------------
5 files changed, 30 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/5b182098/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/OneToManyFeature.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/OneToManyFeature.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/OneToManyFeature.java
index d08c751..3ffc9f9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/OneToManyFeature.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/OneToManyFeature.java
@@ -20,7 +20,9 @@
package org.apache.isis.core.metamodel.spec.feature;
import java.util.Collection;
+import java.util.List;
import java.util.Queue;
+import java.util.Set;
/**
* Base interface for {@link OneToManyAssociation} only.
@@ -68,4 +70,19 @@ public interface OneToManyFeature extends ObjectFeature {
}
CollectionSemantics getCollectionSemantics();
+
+ public static class Util {
+ public static CollectionSemantics semanticsOf(final Class<?> underlyingClass) {
+ if (!Collection.class.isAssignableFrom(underlyingClass)) {
+ return CollectionSemantics.ARRAY;
+ }
+ if (List.class.isAssignableFrom(underlyingClass)) {
+ return CollectionSemantics.LIST;
+ }
+ if (Set.class.isAssignableFrom(underlyingClass)) {
+ return CollectionSemantics.SET;
+ }
+ return CollectionSemantics.OTHER;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5b182098/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterContributee.java
index 54eae3c..4db147e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterContributee.java
@@ -18,6 +18,7 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.feature.OneToManyActionParameter;
+import org.apache.isis.core.metamodel.spec.feature.OneToManyFeature;
public class OneToManyActionParameterContributee
extends ObjectActionParameterContributeeAbstract
@@ -33,6 +34,7 @@ public class OneToManyActionParameterContributee
@Override
public CollectionSemantics getCollectionSemantics() {
- throw new RuntimeException("TODO: not yet implemented");
+ final Class<?> underlyingClass = getSpecification().getCorrespondingClass();
+ return OneToManyFeature.Util.semanticsOf(underlyingClass);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5b182098/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterDefault.java
index 890ed2a..a542f15 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterDefault.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
import org.apache.isis.core.metamodel.facets.TypedHolder;
import org.apache.isis.core.metamodel.spec.feature.OneToManyActionParameter;
+import org.apache.isis.core.metamodel.spec.feature.OneToManyFeature;
public class OneToManyActionParameterDefault extends ObjectActionParameterAbstract implements OneToManyActionParameter {
@@ -33,6 +34,9 @@ public class OneToManyActionParameterDefault extends ObjectActionParameterAbstra
@Override
public CollectionSemantics getCollectionSemantics() {
- throw new RuntimeException("TODO: not yet implemented");
+ final Class<?> underlyingClass = getSpecification().getCorrespondingClass();
+ return OneToManyFeature.Util.semanticsOf(underlyingClass);
}
+
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5b182098/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterMixedIn.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterMixedIn.java
index b95106c..6ca04c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyActionParameterMixedIn.java
@@ -17,6 +17,7 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
import org.apache.isis.core.metamodel.spec.feature.OneToManyActionParameter;
+import org.apache.isis.core.metamodel.spec.feature.OneToManyFeature;
public class OneToManyActionParameterMixedIn
extends ObjectActionParameterMixedInAbstract
@@ -30,6 +31,7 @@ public class OneToManyActionParameterMixedIn
@Override
public CollectionSemantics getCollectionSemantics() {
- throw new RuntimeException("TODO: not yet implemented");
+ final Class<?> underlyingClass = getSpecification().getCorrespondingClass();
+ return OneToManyFeature.Util.semanticsOf(underlyingClass);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5b182098/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
index c9648cb..ca55eee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
@@ -19,10 +19,6 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.util.ToString;
@@ -48,6 +44,7 @@ import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.services.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.core.metamodel.spec.feature.OneToManyFeature;
public class OneToManyAssociationDefault extends ObjectAssociationAbstract implements OneToManyAssociation {
@@ -69,20 +66,7 @@ public class OneToManyAssociationDefault extends ObjectAssociationAbstract imple
@Override
public CollectionSemantics getCollectionSemantics() {
final Class<?> underlyingClass = getSpecification().getCorrespondingClass();
- return semanticsOf(underlyingClass);
- }
-
- private static CollectionSemantics semanticsOf(final Class<?> underlyingClass) {
- if (!Collection.class.isAssignableFrom(underlyingClass)) {
- return CollectionSemantics.ARRAY;
- }
- if (List.class.isAssignableFrom(underlyingClass)) {
- return CollectionSemantics.LIST;
- }
- if (Set.class.isAssignableFrom(underlyingClass)) {
- return CollectionSemantics.SET;
- }
- return CollectionSemantics.OTHER;
+ return OneToManyFeature.Util.semanticsOf(underlyingClass);
}
//region > visible, usable