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/01/29 18:13:50 UTC
[isis] branch master updated: ISIS-2510: more metamodel recusrive
lookup fixes
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 bb3d312 ISIS-2510: more metamodel recusrive lookup fixes
bb3d312 is described below
commit bb3d312c322c8e915920fe495f7748679ba043fd
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jan 29 19:13:31 2021 +0100
ISIS-2510: more metamodel recusrive lookup fixes
---
.../specloader/specimpl/ObjectMemberContainer.java | 20 +++++++++++---------
.../secman/api/permission/ApplicationPermission.java | 19 ++++++++++++++-----
.../domainmodel/DomainModelTest_usingGoodDomain.java | 4 ----
.../wicket/model/models/EntityCollectionModel.java | 1 +
4 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberContainer.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberContainer.java
index f649d50..779465a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberContainer.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberContainer.java
@@ -80,15 +80,16 @@ implements
final MixedIn contributed) {
if(isTypeHierarchyRoot()) {
- return Stream.empty(); // stop as we reached the Object class, which does not contribute actions
+ return streamDeclaredActions(contributed); // stop going deeper
}
-
+
val ids = _Sets.<String>newHashSet();
return Stream.concat(
- streamDeclaredActions(contributed),
- superclass().streamActions(contributed))
- .filter(action->ids.add(action.getId())); // ensure we don't emit duplicates
+ streamDeclaredActions(contributed),
+ superclass().streamActions(contributed)
+ )
+ .filter(action->ids.add(action.getId())); // ensure we don't emit duplicates
}
// -- ASSOCIATIONS
@@ -111,15 +112,16 @@ implements
public Stream<ObjectAssociation> streamAssociations(MixedIn contributed) {
if(isTypeHierarchyRoot()) {
- return Stream.empty(); // stop as we reached the Object class, which does not contribute associations
+ return streamDeclaredAssociations(contributed); // stop going deeper
}
-
+
val ids = _Sets.<String>newHashSet();
return Stream.concat(
streamDeclaredAssociations(contributed),
- superclass().streamAssociations(contributed))
- .filter(association->ids.add(association.getId())); // ensure we don't emit duplicates
+ superclass().streamAssociations(contributed)
+ )
+ .filter(association->ids.add(association.getId())); // ensure we don't emit duplicates
}
}
diff --git a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermission.java b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermission.java
index 8c5c04e..0b510e9 100644
--- a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermission.java
+++ b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermission.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureId;
import org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureType;
import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
@@ -61,7 +62,7 @@ import lombok.val;
* </ul>
* </p>
*/
-@DomainObject
+@DomainObject(objectType = "isis.ext.secman.IApplicationPermission")
public interface ApplicationPermission {
// -- DOMAIN EVENTS
@@ -123,17 +124,23 @@ public interface ApplicationPermission {
@Property
@MemberOrder(name="Feature", sequence = "5.1")
- String getFeatureFqn();
+ default String getFeatureFqn() {
+ throw _Exceptions.unsupportedOperation("please implement me");
+ }
void setFeatureFqn(String featureFqn);
@Property
@MemberOrder(name="Permissions", sequence = "2")
- ApplicationPermissionRule getRule();
+ default ApplicationPermissionRule getRule() {
+ throw _Exceptions.unsupportedOperation("please implement me");
+ }
void setRule(ApplicationPermissionRule rule);
@Property
@MemberOrder(name="Permissions", sequence = "3")
- ApplicationPermissionMode getMode();
+ default ApplicationPermissionMode getMode() {
+ throw _Exceptions.unsupportedOperation("please implement me");
+ }
void setMode(ApplicationPermissionMode changing);
@Property
@@ -141,7 +148,9 @@ public interface ApplicationPermission {
hidden=Where.REFERENCES_PARENT
)
@MemberOrder(name="Role", sequence = "1")
- ApplicationRole getRole();
+ default ApplicationRole getRole() {
+ throw _Exceptions.unsupportedOperation("please implement me");
+ }
void setRole(ApplicationRole applicationRole);
// -- HELPER
diff --git a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
index 329e4e4..2494ee4 100644
--- a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
+++ b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
@@ -190,10 +190,6 @@ class DomainModelTest_usingGoodDomain {
@MethodSource("provideProperMemberInheritanceTypes")
void metamodelContributingMembers_shouldBeInheritable(Class<?> type) {
- if(type.isInterface()) {
- System.out.println("if");
- }
-
val holderSpec = specificationLoader.loadSpecification(type,
IntrospectionState.TYPE_AND_MEMBERS_INTROSPECTED);
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index f023f6d..a5fef46 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -34,6 +34,7 @@ import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
+import org.apache.isis.commons.internal.debug._Probe;
import org.apache.isis.commons.internal.factory._InstanceUtil;
import org.apache.isis.core.metamodel.commons.ClassExtensions;
import org.apache.isis.core.metamodel.commons.ClassUtil;