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 2018/01/23 10:57:42 UTC

[isis] 05/10: ISIS-1841 replace uses of deprecated Nullable with Java's Optional

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch ISIS-1846_internal_utils
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 3b9aded419530572499770ae854377e23b976d05
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jan 23 09:41:45 2018 +0100

    ISIS-1841 replace uses of deprecated Nullable with Java's Optional
---
 .../isis/core/metamodel/facetapi/FacetUtil.java    |  8 ++++---
 .../core/metamodel/facets/MethodFinderUtils.java   | 16 ++++++-------
 .../DomainObjectAnnotationFacetFactory.java        |  8 +++----
 .../recreatable/RecreatableObjectFacetFactory.java |  8 +++----
 .../metamodel/facets/MethodFinderUtilsTest.java    | 27 +++++++++++-----------
 5 files changed, 34 insertions(+), 33 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetUtil.java
index 7f1e10e..bf8b727 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetUtil.java
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.isis.applib.internal._Constants;
+import org.apache.isis.applib.internal.base._Casts;
 
 import com.google.common.collect.Lists;
 
@@ -110,9 +111,9 @@ public final class FacetUtil {
      * Bit nasty, for use only by {@link FacetHolder}s that index their
      * {@link Facet}s in a Map.
      */
-    @SuppressWarnings("unchecked")
     public static Class<? extends Facet>[] getFacetTypes(final Map<Class<? extends Facet>, Facet> facetsByClass) {
-        return facetsByClass.keySet().toArray(_Constants.emptyClasses);
+        return _Casts.uncheckedCast(
+        		facetsByClass.keySet().toArray(_Constants.emptyClasses)	);
     }
 
     /**
@@ -169,7 +170,8 @@ public final class FacetUtil {
     public static void copyFacets(final FacetHolder source, final FacetHolder target) {
         final Class<? extends Facet>[] facetTypes = source.getFacetTypes();
         for (Class<? extends Facet> facetType : facetTypes) {
-            final Facet facet = source.getFacet(facetType);
+            //TODO [ahuber] unused because of expected side effects?
+			final Facet facet = source.getFacet(facetType);
 
         }
         List<Facet> facets = source.getFacets(com.google.common.base.Predicates.<Facet>alwaysTrue());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFinderUtils.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFinderUtils.java
index 144ffc2..2109995 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFinderUtils.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFinderUtils.java
@@ -22,8 +22,8 @@ import java.lang.reflect.Modifier;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
-import org.apache.isis.core.commons.lang.Nullable;
 import org.apache.isis.core.metamodel.facetapi.MethodRemover;
 import org.apache.isis.core.metamodel.methodutils.MethodScope;
 
@@ -202,28 +202,28 @@ public final class MethodFinderUtils {
     public static Method findAnnotatedMethod(
             final Object pojo,
             final Class<? extends Annotation> annotationClass,
-            final Map<Class, Nullable<Method>> methods) {
+            final Map<Class, Optional<Method>> methods) {
 
         final Class<?> clz = pojo.getClass();
-        Nullable<Method> nullableMethod = methods.get(clz);
+        Optional<Method> nullableMethod = methods.get(clz);
         if(nullableMethod == null) {
             nullableMethod = search(clz, annotationClass, methods);
         }
-        return nullableMethod.value();
+        return nullableMethod.orElse(null);
     }
 
-    private static Nullable<Method> search(
+    private static Optional<Method> search(
             final Class<?> clz,
             final Class<? extends Annotation> annotationClass,
-            final Map<Class, Nullable<Method>> postConstructMethods) {
+            final Map<Class, Optional<Method>> postConstructMethods) {
 
         final Method[] methods = clz.getMethods();
 
-        Nullable<Method> nullableMethod = Nullable.none();
+        Optional<Method> nullableMethod = Optional.empty();
         for (final Method method : methods) {
             final Annotation annotation = method.getAnnotation(annotationClass);
             if(annotation != null) {
-                nullableMethod = Nullable.some(method);
+                nullableMethod = Optional.of(method);
                 break;
             }
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index a6c387f..3408427 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -21,12 +21,11 @@ package org.apache.isis.core.metamodel.facets.object.domainobject;
 import java.lang.reflect.Method;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 import javax.annotation.PostConstruct;
 
-import com.google.common.collect.Maps;
-
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.services.HasTransactionId;
@@ -38,7 +37,6 @@ import org.apache.isis.applib.services.eventbus.ObjectRemovingEvent;
 import org.apache.isis.applib.services.eventbus.ObjectUpdatedEvent;
 import org.apache.isis.applib.services.eventbus.ObjectUpdatingEvent;
 import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.lang.Nullable;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -82,6 +80,8 @@ import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
 import org.apache.isis.core.metamodel.util.EventUtil;
 import org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet;
 
+import com.google.common.collect.Maps;
+
 
 public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
         implements MetaModelValidatorRefiner, PostConstructMethodCache {
@@ -522,7 +522,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
 
     // //////////////////////////////////////
 
-    private final Map<Class, Nullable<Method>> postConstructMethods = Maps.newHashMap();
+    private final Map<Class, Optional<Method>> postConstructMethods = Maps.newHashMap();
 
     public Method postConstructMethodFor(final Object pojo) {
         return MethodFinderUtils.findAnnotatedMethod(pojo, PostConstruct.class, postConstructMethods);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
index 99f491c..ea70a9a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
@@ -21,16 +21,14 @@ package org.apache.isis.core.metamodel.facets.object.recreatable;
 
 import java.lang.reflect.Method;
 import java.util.Map;
+import java.util.Optional;
 
 import javax.annotation.PostConstruct;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import com.google.common.collect.Maps;
-
 import org.apache.isis.applib.RecreatableDomainObject;
 import org.apache.isis.applib.ViewModel;
 import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.lang.Nullable;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -48,6 +46,8 @@ import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorCom
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
 
+import com.google.common.collect.Maps;
+
 public class RecreatableObjectFacetFactory extends FacetFactoryAbstract
         implements MetaModelValidatorRefiner, PostConstructMethodCache {
 
@@ -125,7 +125,7 @@ public class RecreatableObjectFacetFactory extends FacetFactoryAbstract
 
     // //////////////////////////////////////
 
-    private final Map<Class, Nullable<Method>> postConstructMethods = Maps.newHashMap();
+    private final Map<Class, Optional<Method>> postConstructMethods = Maps.newHashMap();
 
     public Method postConstructMethodFor(final Object pojo) {
         return MethodFinderUtils.findAnnotatedMethod(pojo, PostConstruct.class, postConstructMethods);
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/MethodFinderUtilsTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/MethodFinderUtilsTest.java
index b2a8ed6..044339d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/MethodFinderUtilsTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/MethodFinderUtilsTest.java
@@ -16,21 +16,20 @@
  */
 package org.apache.isis.core.metamodel.facets;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertThat;
+
 import java.lang.reflect.Method;
 import java.util.Map;
+import java.util.Optional;
 
 import javax.annotation.PostConstruct;
 
-import com.google.common.collect.Maps;
-
 import org.junit.Test;
 
-import org.apache.isis.core.commons.lang.Nullable;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.junit.Assert.assertThat;
+import com.google.common.collect.Maps;
 
 public class MethodFinderUtilsTest {
 
@@ -45,27 +44,27 @@ public class MethodFinderUtilsTest {
     @Test
     public void whenExists() throws Exception {
 
-        final Map<Class, Nullable<Method>> cache = Maps.newHashMap();
+        final Map<Class, Optional<Method>> cache = Maps.newHashMap();
         final Method method = MethodFinderUtils.findAnnotatedMethod(new WithPostConstruct(), PostConstruct.class, cache);
 
         assertThat(method, is(not(nullValue())));
-        final Nullable<Method> actual = cache.get(WithPostConstruct.class);
+        final Optional<Method> actual = cache.get(WithPostConstruct.class);
         assertThat(actual, is(not(nullValue())));
         assertThat(actual.isPresent(), is(true));
-        assertThat(actual.value(), is(method));
+        assertThat(actual.orElse(null), is(method));
     }
 
     @Test
     public void whenDoesNotExist() throws Exception {
 
-        final Map<Class, Nullable<Method>> cache = Maps.newHashMap();
+        final Map<Class, Optional<Method>> cache = Maps.newHashMap();
         final Method method = MethodFinderUtils.findAnnotatedMethod(new NoPostConstruct(), PostConstruct.class, cache);
 
         assertThat(method, is(nullValue()));
-        final Nullable<Method> actual = cache.get(NoPostConstruct.class);
+        final Optional<Method> actual = cache.get(NoPostConstruct.class);
         assertThat(actual, is(not(nullValue())));
         assertThat(actual.isPresent(), is(false));
-        assertThat(actual.value(), is(nullValue()));
+        assertThat(actual.orElse(null), is(nullValue()));
     }
 
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.