X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fcompat%2FNotificationInvoker.java;h=f98c8b8a53f3f6d1476ef9df377e7fbab112e285;hp=08a147721f71ccad7569a7e61fce07cdc0bad17e;hb=b197d75e803beac663033287d769dce62c108490;hpb=b75e917304cda8d1a925b4622e98d0189cfb79eb diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/compat/NotificationInvoker.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/compat/NotificationInvoker.java index 08a147721f..f98c8b8a53 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/compat/NotificationInvoker.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/compat/NotificationInvoker.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.md.sal.binding.compat; import com.google.common.collect.ImmutableMap; +import com.google.common.reflect.TypeToken; import java.lang.reflect.Method; import java.util.HashMap; import java.util.HashSet; @@ -28,7 +29,8 @@ final class NotificationInvoker implements org.opendaylight.controller.sal.bindi private NotificationInvoker(final NotificationListener listener) { delegate = listener; final Map, InvokerContext> builder = new HashMap<>(); - for(final Class iface : listener.getClass().getInterfaces()) { + for(final TypeToken ifaceToken : TypeToken.of(listener.getClass()).getTypes().interfaces()) { + final Class iface = ifaceToken.getRawType(); if(NotificationListener.class.isAssignableFrom(iface) && BindingReflections.isBindingClass(iface)) { @SuppressWarnings("unchecked") final Class listenerType = (Class) iface; @@ -52,7 +54,7 @@ final class NotificationInvoker implements org.opendaylight.controller.sal.bindi @Override public void onNotification(final Notification notification) { getContext(notification.getImplementedInterface()).invoke(notification); - }; + } private InvokerContext getContext(final Class type) { return invokers.get(type); @@ -72,7 +74,7 @@ final class NotificationInvoker implements org.opendaylight.controller.sal.bindi return ret; } - private class InvokerContext { + private final class InvokerContext { private final QName name; private final NotificationListenerInvoker invoker;