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/03/05 07:17:53 UTC

[isis] branch master updated: ISIS-2553: ApplicationFeature: make field featureId final

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 6519925  ISIS-2553: ApplicationFeature: make field featureId final
6519925 is described below

commit 6519925b86309eb6862dcb79fbd68939f578f9dc
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Mar 5 08:17:39 2021 +0100

    ISIS-2553: ApplicationFeature: make field featureId final
---
 .../services/appfeat/ApplicationFeature.java       | 34 +++++-----------------
 .../appfeat/ApplicationFeatureFactory.java         |  5 ++--
 .../ApplicationFeatureRepositoryDefault.java       |  7 ++---
 .../metamodel/services/appfeat/_Predicates.java    |  2 +-
 .../services/appfeat/ApplicationFeatureIdTest.java |  4 +--
 .../ApplicationFeatureRepositoryDefaultTest.java   | 26 +----------------
 6 files changed, 17 insertions(+), 61 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeature.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeature.java
index 9dfcc95..d579487 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeature.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeature.java
@@ -20,12 +20,7 @@ package org.apache.isis.core.metamodel.services.appfeat;
 
 import java.util.Comparator;
 import java.util.SortedSet;
-import java.util.function.Function;
-import java.util.function.Predicate;
 
-import javax.enterprise.inject.Vetoed;
-
-import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.annotation.Value;
 import org.apache.isis.applib.services.appfeat.ApplicationFeatureId;
@@ -40,7 +35,6 @@ import org.apache.isis.commons.internal.collections._Sets;
 
 import lombok.Getter;
 import lombok.Setter;
-import lombok.experimental.UtilityClass;
 
 /**
  * Canonical application feature, identified by {@link ApplicationFeatureId},
@@ -54,33 +48,21 @@ import lombok.experimental.UtilityClass;
 @Value
 public class ApplicationFeature implements Comparable<ApplicationFeature> {
 
-    public static abstract class PropertyDomainEvent<T> 
-    extends IsisModuleApplib.PropertyDomainEvent<ApplicationFeature, T> {}
-
-    public static abstract class CollectionDomainEvent<T> 
-    extends IsisModuleApplib.CollectionDomainEvent<ApplicationFeature, T> {}
-
-    public static abstract class ActionDomainEvent 
-    extends IsisModuleApplib.ActionDomainEvent<ApplicationFeature> {}
-
-    // -- constants
+    // -- CONSTANTS
 
     // using same value for all to neaten up rendering
     public static final int TYPICAL_LENGTH_PKG_FQN = 50;
     public static final int TYPICAL_LENGTH_CLS_NAME = 50;
     public static final int TYPICAL_LENGTH_MEMBER_NAME = 50;
 
-
-    // -- constructors
-    public ApplicationFeature() {
-        this(null);
-    }
+    // -- CONSTRUCTORS
+    
     public ApplicationFeature(final ApplicationFeatureId featureId) {
-        setFeatureId(featureId);
+        this.featureId = featureId;
     }
 
-    @Getter @Setter
-    private ApplicationFeatureId featureId;
+    @Getter
+    private final ApplicationFeatureId featureId;
 
     /**
      * Only for {@link ApplicationFeatureSort#MEMBER member}s.
@@ -161,10 +143,10 @@ public class ApplicationFeature implements Comparable<ApplicationFeature> {
         _Asserts.ensureType(this.getFeatureId());
         _Asserts.ensureMember(memberId);
 
-        membersOf(memberSort).add(memberId);
+        membersOfSort(memberSort).add(memberId);
     }
     
-    public SortedSet<ApplicationFeatureId> membersOf(final ApplicationMemberSort memberSort) {
+    public SortedSet<ApplicationFeatureId> membersOfSort(final ApplicationMemberSort memberSort) {
         _Asserts.ensureType(this.getFeatureId());
         switch (memberSort) {
         case PROPERTY:
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureFactory.java
index 665945e..8827e61 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureFactory.java
@@ -26,6 +26,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.apache.isis.applib.services.appfeat.ApplicationFeatureId;
 
 @Service
 @Named("isis.metamodel.ApplicationFeatureFactory")
@@ -34,8 +35,8 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
 @Qualifier("Default")
 public class ApplicationFeatureFactory {
 
-    public ApplicationFeature newApplicationFeature() {
-        return new ApplicationFeature(); // value type
+    public ApplicationFeature newApplicationFeature(ApplicationFeatureId featId) {
+        return new ApplicationFeature(featId); // value type
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
index 8ba6a7f..c87b3a1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
@@ -330,12 +330,9 @@ implements ApplicationFeatureRepository {
     }
 
     private ApplicationFeature newFeature(final ApplicationFeatureId featureId) {
-        final ApplicationFeature feature = applicationFeatureFactory.newApplicationFeature();
-        feature.setFeatureId(featureId);
-        return feature;
+        return applicationFeatureFactory.newApplicationFeature(featureId);
     }
 
-
     protected boolean exclude(final ObjectSpecification spec) {
 
         val excluded = spec.isMixin() || spec.isAbstract() ||
@@ -529,7 +526,7 @@ implements ApplicationFeatureRepository {
         if (cls == null) {
             return Collections.emptySortedSet();
         }
-        final SortedSet<ApplicationFeatureId> featureIds = cls.membersOf(memberSort);
+        final SortedSet<ApplicationFeatureId> featureIds = cls.membersOfSort(memberSort);
         return featureIds.stream()
                 .map(ApplicationFeatureId::getMemberName)
                 .collect(_Sets.toUnmodifiableSorted());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/_Predicates.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/_Predicates.java
index 2a334cb..2480222 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/_Predicates.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/_Predicates.java
@@ -40,7 +40,7 @@ final class _Predicates {
                     return false;
                 }
                 return memberSort == null 
-                        || !feature.membersOf(memberSort).isEmpty();
+                        || !feature.membersOfSort(memberSort).isEmpty();
         };
     }
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureIdTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureIdTest.java
index a816a38..f77477d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureIdTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureIdTest.java
@@ -641,7 +641,7 @@ public class ApplicationFeatureIdTest {
                     oneOf(mockApplicationFeatureRepository).findFeature(classFeature);
                     will(returnValue(mockApplicationFeature));
 
-                    allowing(mockApplicationFeature).membersOf(ApplicationMemberSort.ACTION);
+                    allowing(mockApplicationFeature).membersOfSort(ApplicationMemberSort.ACTION);
                     will(returnValue(new TreeSet<>()));
                 }});
 
@@ -658,7 +658,7 @@ public class ApplicationFeatureIdTest {
                     oneOf(mockApplicationFeatureRepository).findFeature(classFeature);
                     will(returnValue(mockApplicationFeature));
 
-                    allowing(mockApplicationFeature).membersOf(ApplicationMemberSort.ACTION);
+                    allowing(mockApplicationFeature).membersOfSort(ApplicationMemberSort.ACTION);
                     will(returnValue(new TreeSet<ApplicationFeatureId>() {{
                         add(ApplicationFeatureId.newMember("com.mycompany.Bar#foo"));
                     }}));
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java
index 6ec1629..6febbdf 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java
@@ -271,36 +271,12 @@ public class ApplicationFeatureRepositoryDefaultTest {
 
         }
 
-        @Test @Ignore // ApplicationFeature is a value not an entity, hence no longer created with the Factory Service
-        public void parentNotYetEncountered() throws Exception {
-
-            // given
-            final ApplicationFeatureId classFeatureId = ApplicationFeatureId.newType("com.mycompany.Bar");
-
-            // expecting
-            final ApplicationFeature newlyCreatedParent = new ApplicationFeature();
-
-            context.checking(new Expectations() {{
-                allowing(mockFactoryService).create(ApplicationFeature.class);
-                will(returnValue(newlyCreatedParent));
-            }});
-
-            // when
-            final ApplicationFeatureId classParentId = applicationFeatureRepository.addClassParent(classFeatureId);
-
-            // then
-            Assert.assertThat(classParentId, is(equalTo(classFeatureId.getParentNamespaceFeatureId())));
-            final ApplicationFeature classPackage = applicationFeatureRepository.findNamespace(classParentId);
-            assertThat(classPackage, is(newlyCreatedParent));
-        }
-
         @Test
         public void parentAlreadyEncountered() throws Exception {
 
             // given
             final ApplicationFeatureId packageId = ApplicationFeatureId.newNamespace("com.mycompany");
-            final ApplicationFeature pkg = new ApplicationFeature();
-            pkg.setFeatureId(packageId);
+            final ApplicationFeature pkg = new ApplicationFeature(packageId);
             applicationFeatureRepository.packageFeatures.put(packageId, pkg);
 
             final ApplicationFeatureId classFeatureId = ApplicationFeatureId.newType("com.mycompany.Bar");