From: Robert Varga Date: Mon, 8 Oct 2018 09:32:51 +0000 (+0200) Subject: Reuse AbstractListenerRegistration X-Git-Tag: release/neon~123 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=23887ff5bac8a64eaf362ba01fc2afe730257c69;p=netconf.git Reuse AbstractListenerRegistration Instead of brewing our own, non-idempotent implementation of ListenerRegistration use AbstractListenerRegistration which takes care of being idempotent and holding the listener instance. Change-Id: I1525f5011c455a0f170d492f164cdeb3b7290b9b Signed-off-by: Robert Varga --- diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceNotificationService.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceNotificationService.java index e27a7b2ec2..44d088dc46 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceNotificationService.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceNotificationService.java @@ -16,6 +16,7 @@ import javax.annotation.Nonnull; import org.opendaylight.controller.md.sal.dom.api.DOMNotification; import org.opendaylight.controller.md.sal.dom.api.DOMNotificationListener; import org.opendaylight.controller.md.sal.dom.api.DOMNotificationService; +import org.opendaylight.yangtools.concepts.AbstractListenerRegistration; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.slf4j.Logger; @@ -48,18 +49,13 @@ public class NetconfDeviceNotificationService implements DOMNotificationService listeners.put(type, listener); } - return new ListenerRegistration() { + return new AbstractListenerRegistration(listener) { @Override - public void close() { + protected void removeRegistration() { for (final SchemaPath type : types) { listeners.remove(type, listener); } } - - @Override - public T getInstance() { - return listener; - } }; }