Deprecate old MD-SAL APIs for removal
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / md / sal / binding / compat / ListenerMapGeneration.java
index f59783883bb5076bdcef2ed54f12703b2939b8a0..7b564083425b27f8e17bf24feb1a0092c6cf271a 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,25 +7,24 @@
  */
 package org.opendaylight.controller.md.sal.binding.compat;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.opendaylight.yangtools.yang.binding.Notification;
-
-import com.google.common.base.Predicate;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
 import com.google.common.collect.ImmutableMultimap;
 import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
 import com.google.common.collect.Multimap;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.opendaylight.yangtools.yang.binding.Notification;
 
 /**
  * An immutable view of the current generation of listeners.
  */
+@Deprecated(forRemoval = true)
 final class ListenerMapGeneration {
     private static final int CACHE_MAX_ENTRIES = 1000;
 
@@ -49,7 +48,8 @@ final class ListenerMapGeneration {
 
                     for (final Class<?> type : getNotificationTypes(key)) {
                         @SuppressWarnings("unchecked")
-                        final Collection<NotificationListenerRegistration<?>> l = typeToListeners.get((Class<? extends Notification>) type);
+                        final Collection<NotificationListenerRegistration<?>> l =
+                                typeToListeners.get((Class<? extends Notification>) type);
                         if (l != null) {
                             regs.addAll(l);
                         }
@@ -63,7 +63,8 @@ final class ListenerMapGeneration {
         typeToListeners = ImmutableMultimap.of();
     }
 
-    ListenerMapGeneration(final Multimap<Class<? extends Notification>, NotificationListenerRegistration<?>> listeners) {
+    ListenerMapGeneration(final Multimap<Class<? extends Notification>,
+            NotificationListenerRegistration<?>> listeners) {
         this.typeToListeners = ImmutableMultimap.copyOf(listeners);
     }
 
@@ -91,16 +92,11 @@ final class ListenerMapGeneration {
         return typeToListeners.keySet();
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private static Iterable<Class<?>> getNotificationTypes(final Class<?> cls) {
-        final Class<?>[] ifaces = cls.getInterfaces();
-        return Iterables.filter(Arrays.asList(ifaces), new Predicate<Class<?>>() {
-            @Override
-            public boolean apply(final Class<?> input) {
-                if (Notification.class.equals(input)) {
-                    return false;
-                }
-                return Notification.class.isAssignableFrom(input);
-            }
-        });
+        return Arrays.stream(cls.getInterfaces())
+                .filter(input -> !Notification.class.equals(input) && Notification.class.isAssignableFrom(input))
+                .collect(Collectors.toList());
     }
-}
\ No newline at end of file
+}