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 2020/01/31 11:22:11 UTC

[isis] branch master updated: ISIS-2158: replace Tuple in grid-service (code quality)

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 17337ed  ISIS-2158: replace Tuple in grid-service (code quality)
17337ed is described below

commit 17337ed117ca003e29c9ec48ef2c72541e23139f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jan 31 12:22:02 2020 +0100

    ISIS-2158: replace Tuple in grid-service (code quality)
---
 .../services/grid/GridSystemServiceAbstract.java   | 37 +++++++---------------
 .../grid/bootstrap3/GridSystemServiceBS3.java      | 19 +++++------
 2 files changed, 22 insertions(+), 34 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index cb0e0fb..4d3e390 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -18,10 +18,10 @@
  */
 package org.apache.isis.core.metamodel.services.grid;
 
-import java.util.Collection;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Stream;
 
@@ -53,7 +53,7 @@ import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.base._Strings;
-import org.apache.isis.core.commons.internal.collections._Lists;
+import org.apache.isis.core.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.internal.environment.IsisSystemEnvironment;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -116,6 +116,8 @@ import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
+import lombok.Value;
+import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
 @Log4j2
@@ -374,33 +376,18 @@ implements GridSystemService<G> {
     }
 
 
-
-    protected static class Tuple<T> {
-        public final T first;
-        public final T second;
-        private Tuple(final T first, final T second) {
-            this.first = first;
-            this.second = second;
-        }
-        public static <T> Tuple<T> of(final T first, final T second) {
-            return new Tuple<>(first, second);
-        }
+    @Value(staticConstructor = "of")
+    protected static class SurplusAndMissing {
+        public final Set<String> surplus;
+        public final Set<String> missing;
     }
 
-
-    /**
-     * Returns a 2-element tuple of [first-second, second-first]
-     */
-    protected static <T> Tuple<List<T>> surplusAndMissing(final Collection<T> first, final Collection<T> second){
-        final List<T> firstNotSecond = _Lists.newArrayList(first);
-        firstNotSecond.removeAll(second);
-        final List<T> secondNotFirst = _Lists.newArrayList(second);
-        secondNotFirst.removeAll(first);
-        return Tuple.of(firstNotSecond, secondNotFirst);
+    protected static SurplusAndMissing surplusAndMissing(final Set<String> first, final Set<String> second){
+        val firstNotSecond = _Sets.minus(first, second);
+        val secondNotFirst = _Sets.minus(second, first);
+        return SurplusAndMissing.of(firstNotSecond, secondNotFirst);
     }
 
-
-
     // //////////////////////////////////////
 
     @Programmatic
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
index 0c9d0d0..7a68d0e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
@@ -344,10 +344,10 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
         }
 
         // add missing properties will be added to the first fieldset of the specified column
-        final Tuple<List<String>> propertyIdTuple =
+        val surplusAndMissingPropertyIds = 
                 surplusAndMissing(propertyLayoutDataById.keySet(),  oneToOneAssociationById.keySet());
-        final List<String> surplusPropertyIds = propertyIdTuple.first;
-        final List<String> missingPropertyIds = propertyIdTuple.second;
+        val surplusPropertyIds = surplusAndMissingPropertyIds.getSurplus();
+        val missingPropertyIds = surplusAndMissingPropertyIds.getMissing();
 
         for (String surplusPropertyId : surplusPropertyIds) {
             propertyLayoutDataById.get(surplusPropertyId).setMetadataError("No such property");
@@ -425,10 +425,10 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
         }
 
         // any missing collections will be added as tabs to a new TabGroup in the specified column
-        final Tuple<List<String>> collectionIdTuple =
+        val surplusAndMissingCollectionIds =
                 surplusAndMissing(collectionLayoutDataById.keySet(), oneToManyAssociationById.keySet());
-        final List<String> surplusCollectionIds = collectionIdTuple.first;
-        final List<String> missingCollectionIds = collectionIdTuple.second;
+        val surplusCollectionIds = surplusAndMissingCollectionIds.getSurplus();
+        val missingCollectionIds = surplusAndMissingCollectionIds.getMissing();
 
         for (String surplusCollectionId : surplusCollectionIds) {
             collectionLayoutDataById.get(surplusCollectionId).setMetadataError("No such collection");
@@ -456,10 +456,11 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
         }
 
         // any missing actions will be added as actions in the specified column
-        final Tuple<List<String>> actionIdTuple =
+        val surplusAndMissingActionIds =
                 surplusAndMissing(actionLayoutDataById.keySet(), objectActionById.keySet());
-        final List<String> surplusActionIds = actionIdTuple.first;
-        final List<String> possiblyMissingActionIds = actionIdTuple.second;
+        val surplusActionIds = surplusAndMissingActionIds.getSurplus();
+        val possiblyMissingActionIds = surplusAndMissingActionIds.getMissing();
+        
         final List<String> associatedActionIds = _Lists.newArrayList();
 
         final List<ObjectAction> sortedPossiblyMissingActions =