X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2FResolveDataChangeEventsTask.java;h=d8feaa71f6ac104132f14c0659677f566ee530c5;hb=971b179000ef1cc56699de35061cf6f97d4cf36f;hp=3ddf0b60faf07323f7f26cb4d7488851015ef688;hpb=ae9f221d8bb8db034f4297f632270ba202827c56;p=controller.git diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java index 3ddf0b60fa..d8feaa71f6 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java @@ -24,12 +24,15 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.Callable; +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.Builder; import org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.SimpleEventFactory; import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree; import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree.Node; import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree.Walker; +import org.opendaylight.yangtools.util.concurrent.NotificationManager; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -57,9 +60,15 @@ final class ResolveDataChangeEventsTask implements Callable notificationMgr; + + @SuppressWarnings("rawtypes") + public ResolveDataChangeEventsTask(final DataTreeCandidate candidate, final ListenerTree listenerTree, + final NotificationManager notificationMgr) { this.candidate = Preconditions.checkNotNull(candidate); this.listenerRoot = Preconditions.checkNotNull(listenerTree); + this.notificationMgr = Preconditions.checkNotNull(notificationMgr); } /** @@ -120,7 +129,7 @@ final class ResolveDataChangeEventsTask implements Callable taskListBuilder, + private void addNotificationTask(final ImmutableList.Builder taskListBuilder, final ListenerTree.Node listeners, final Collection entries) { if (!entries.isEmpty()) { @@ -141,7 +150,7 @@ final class ResolveDataChangeEventsTask implements Callable taskListBuilder, final ListenerTree.Node listeners, final DOMImmutableDataChangeEvent event) { DataChangeScope eventScope = event.getScope(); @@ -150,11 +159,11 @@ final class ResolveDataChangeEventsTask implements Callable> listenerSet = Collections .> singletonList(listenerReg); if (eventScope == DataChangeScope.BASE) { - taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event)); + taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event, notificationMgr)); } else if (eventScope == DataChangeScope.ONE && listenerScope != DataChangeScope.BASE) { - taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event)); + taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event, notificationMgr)); } else if (eventScope == DataChangeScope.SUBTREE && listenerScope == DataChangeScope.SUBTREE) { - taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event)); + taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event, notificationMgr)); } } } @@ -172,7 +181,7 @@ final class ResolveDataChangeEventsTask implements Callable taskListBuilder, final ListenerTree.Node listeners, final Collection entries) { @@ -210,14 +219,14 @@ final class ResolveDataChangeEventsTask implements Callable taskListBuilder, final Node listeners, final DOMImmutableDataChangeEvent event) { for (DataChangeListenerRegistration listener : listeners.getListeners()) { if (listener.getScope() == event.getScope()) { Set> listenerSet = Collections .> singleton(listener); - taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event)); + taskListBuilder.add(new ChangeListenerNotifyTask(listenerSet, event, notificationMgr)); } } } @@ -519,7 +528,10 @@ final class ResolveDataChangeEventsTask implements Callable notificationMgr) { + return new ResolveDataChangeEventsTask(candidate, listenerTree, notificationMgr); } }