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");