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/08/24 05:30:29 UTC

[isis] branch master updated: ISIS-2856: remove _Optionals.or(...)

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 f0c31f0  ISIS-2856: remove _Optionals.or(...)
f0c31f0 is described below

commit f0c31f096ecfc4b2522be56814e02fae4ff70b3d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Aug 24 07:30:23 2021 +0200

    ISIS-2856: remove _Optionals.or(...)
---
 .../isis/commons/internal/base/_Optionals.java     | 20 +------------------
 .../action/ActionAnnotationFacetFactory.java       | 13 +++++-------
 ...tedFacetAnnotationElseConfigurationFactory.java | 23 ++++++++++------------
 .../SpecificationLoaderTestAbstract.java           | 21 +++++++++-----------
 .../ObjectReflectorDefaultTest_object.java         |  8 ++++----
 .../SpecificationLoaderTestAbstract.java           | 21 ++++++++++----------
 6 files changed, 40 insertions(+), 66 deletions(-)

diff --git a/commons/src/main/java/org/apache/isis/commons/internal/base/_Optionals.java b/commons/src/main/java/org/apache/isis/commons/internal/base/_Optionals.java
index a0f67b9..991d7b4 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/base/_Optionals.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/base/_Optionals.java
@@ -26,25 +26,6 @@ import lombok.experimental.UtilityClass;
 @UtilityClass
 public class _Optionals {
 
-    /**
-     * @deprecated since Java 9 can be replaced with {@code firstOptional.or(() -> secondOptional)};
-     */
-    @Deprecated
-    public static <T> Optional<T> or(
-            final Optional<? extends T> a,
-            final Supplier<Optional<? extends T>> b) {
-        return a.isPresent()
-                ? _Casts.uncheckedCast(a)
-                : b.get().map(_Casts::uncheckedCast);
-    }
-
-    public static <T> Optional<T> or(
-            final Optional<? extends T> a,
-            final Supplier<Optional<? extends T>> b,
-            final Supplier<Optional<? extends T>> c) {
-        return or(or(a, b), c);
-    }
-
     public static <T> Optional<T> orNullable(
             final Optional<? extends T> a,
             final Supplier<? extends T> b) {
@@ -60,4 +41,5 @@ public class _Optionals {
         return orNullable(orNullable(a, b), c);
     }
 
+
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index a7a4249..3a7e24a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -26,7 +26,6 @@ import javax.inject.Inject;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.events.domain.ActionDomainEvent;
 import org.apache.isis.applib.mixins.system.HasInteractionId;
-import org.apache.isis.commons.internal.base._Optionals;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Collections;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -252,15 +251,13 @@ extends FacetFactoryAbstract {
         }
 
         // check for @Action(typeOf=...)
-        val typeOfFacet = _Optionals.<TypeOfFacet>or(
-
-                actionIfAny
+        val typeOfFacet = actionIfAny
                 .map(Action::typeOf)
                 .filter(typeOf -> typeOf != null && typeOf != Object.class)
-                .map(typeOf -> new TypeOfFacetForActionAnnotation(typeOf, facetedMethod)),
-
-                // else infer from generic type arg if any
-                ()->TypeOfFacet.inferFromMethodReturnType(method, facetedMethod));
+                .<TypeOfFacet>map(typeOf -> new TypeOfFacetForActionAnnotation(typeOf, facetedMethod))
+                .or(
+                    // else infer from generic type arg if any
+                    ()->TypeOfFacet.inferFromMethodReturnType(method, facetedMethod));
 
         addFacetIfPresent(typeOfFacet);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
index 669bc5c..b917f0e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
@@ -24,12 +24,10 @@ import java.util.Optional;
 import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Defaulted;
-import org.apache.isis.commons.internal.base._Optionals;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet;
 import org.apache.isis.core.metamodel.facets.object.defaults.DefaultsProviderUtil;
 
 import lombok.val;
@@ -50,22 +48,21 @@ extends FacetFactoryAbstract {
         val config = super.getConfiguration();
         val defaultedIfAny = processClassContext.synthesizeOnType(Defaulted.class);
 
-        addFacetIfPresent(_Optionals.<DefaultedFacet>or(
+        addFacetIfPresent(
 
             // create from annotation, if present
             defaultedIfAny
                 .flatMap(defaultedAnnot->DefaultedFacetAnnotation.create(config, cls, facetHolder))
-            ,
+            .or(
 
-            // otherwise, try to create from configuration, if present
-            ()->{
-                val providerName = DefaultsProviderUtil.defaultsProviderNameFromConfiguration(config, cls);
-                return _Strings.isNotEmpty(providerName)
-                    ? DefaultedFacetFromConfiguration.create(providerName, facetHolder)
-                    : Optional.empty();
-            }
-
-        ));
+                // otherwise, try to create from configuration, if present
+                ()->{
+                    val providerName = DefaultsProviderUtil.defaultsProviderNameFromConfiguration(config, cls);
+                    return _Strings.isNotEmpty(providerName)
+                        ? DefaultedFacetFromConfiguration.create(providerName, facetHolder)
+                        : Optional.empty();
+                })
+        );
     }
 
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
index 4ba0e0b..f8f979f 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -24,7 +24,9 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
-import org.apache.isis.commons.internal.base._Optionals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
 import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -36,9 +38,6 @@ import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
 import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
 import lombok.val;
 
 abstract class SpecificationLoaderTestAbstract {
@@ -85,10 +84,9 @@ abstract class SpecificationLoaderTestAbstract {
     @Test
     public void testNamedFaced() throws Exception {
 
-        val facet =
-                _Optionals.<Facet>or(
-                        specification.lookupFacet(ObjectNamedFacet.class),
-                        ()->specification.lookupFacet(MemberNamedFacet.class))
+        val facet = specification.lookupFacet(ObjectNamedFacet.class)
+                .map(Facet.class::cast)
+                .or(()->specification.lookupFacet(MemberNamedFacet.class))
                 .orElse(null);
 
         assertNotNull(facet);
@@ -97,10 +95,9 @@ abstract class SpecificationLoaderTestAbstract {
     @Test @Disabled("we allow descriptions to be absent - no need to install empty fallbacks")
     public void testDescriptionFacet() throws Exception {
 
-        val facet =
-                _Optionals.<Facet>or(
-                        specification.lookupFacet(ObjectDescribedFacet.class),
-                        ()->specification.lookupFacet(MemberDescribedFacet.class))
+        val facet = specification.lookupFacet(ObjectDescribedFacet.class)
+                .map(Facet.class::cast)
+                .or(()->specification.lookupFacet(MemberDescribedFacet.class))
                 .orElse(null);
 
         assertNotNull(facet);
diff --git a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/ObjectReflectorDefaultTest_object.java b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/ObjectReflectorDefaultTest_object.java
index 816ffb7..2dd64c1 100644
--- a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/ObjectReflectorDefaultTest_object.java
+++ b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/ObjectReflectorDefaultTest_object.java
@@ -26,7 +26,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.isis.commons.internal.base._Optionals;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
@@ -61,9 +60,10 @@ class ObjectReflectorDefaultTest_object extends SpecificationLoaderTestAbstract
     void testStandardFacets() throws Exception {
 
         assertNotNull(
-                _Optionals.<Facet>or(
-                        specification.lookupFacet(ObjectNamedFacet.class),
-                        ()->specification.lookupFacet(MemberNamedFacet.class))
+
+                specification.lookupFacet(ObjectNamedFacet.class)
+                .map(Facet.class::cast)
+                .or(()->specification.lookupFacet(MemberNamedFacet.class))
                 .orElse(null));
 
         //assertNotNull(specification.getFacet(ObjectDescribedFacet.class));
diff --git a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/SpecificationLoaderTestAbstract.java b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/SpecificationLoaderTestAbstract.java
index cd511d6..1a315c8 100644
--- a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -24,7 +24,9 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
-import org.apache.isis.commons.internal.base._Optionals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
 import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -37,9 +39,6 @@ import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
 import lombok.val;
 
 abstract class SpecificationLoaderTestAbstract {
@@ -82,9 +81,10 @@ abstract class SpecificationLoaderTestAbstract {
     @Test
     public void testNamedFaced() throws Exception {
         val facet =
-                _Optionals.<Facet>or(
-                        specification.lookupFacet(ObjectNamedFacet.class),
-                        ()->specification.lookupFacet(MemberNamedFacet.class))
+
+                specification.lookupFacet(ObjectNamedFacet.class)
+                .map(Facet.class::cast)
+                .or(()->specification.lookupFacet(MemberNamedFacet.class))
                 .orElse(null);
 
         assertNotNull(facet);
@@ -93,9 +93,10 @@ abstract class SpecificationLoaderTestAbstract {
     @Test @Disabled("we allow descriptions to be absent - no need to install empty fallbacks")
     public void testDescriptionFacet() throws Exception {
         val facet =
-                _Optionals.<Facet>or(
-                        specification.lookupFacet(ObjectDescribedFacet.class),
-                        ()->specification.lookupFacet(MemberDescribedFacet.class))
+
+                specification.lookupFacet(ObjectDescribedFacet.class)
+                .map(Facet.class::cast)
+                .or(()->specification.lookupFacet(MemberDescribedFacet.class))
                 .orElse(null);
 
         assertNotNull(facet);