X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FBindingDOMDataTreeChangeServiceAdapter.java;h=5c488da005ed1a4745f353dfbcd39442f3352ae6;hb=8a01ebe93fac21b1ae80dcfcc81c21543ec1a687;hp=02daa4559aba652ade0b7662403aa0431e27a4fd;hpb=8293635baf4ff10b01ab2bf2b6336d67714e94f0;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataTreeChangeServiceAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataTreeChangeServiceAdapter.java index 02daa4559a..5c488da005 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataTreeChangeServiceAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataTreeChangeServiceAdapter.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.md.sal.binding.impl; import com.google.common.base.Preconditions; +import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener; import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener; import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeService; import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; @@ -19,15 +20,16 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; /** - * * Adapter exposing Binding {@link DataTreeChangeService} and wrapping * {@link DOMDataTreeChangeService} and is responsible for translation * and instantiation of {@link BindingDOMDataTreeChangeListenerAdapter} * adapters. * + *

* Each registered {@link DataTreeChangeListener} is wrapped using * adapter and registered directly to DOM service. */ +@Deprecated final class BindingDOMDataTreeChangeServiceAdapter implements DataTreeChangeService { private final BindingToNormalizedNodeCodec codec; @@ -45,11 +47,19 @@ final class BindingDOMDataTreeChangeServiceAdapter implements DataTreeChangeServ } @Override - public > ListenerRegistration registerDataTreeChangeListener( - final DataTreeIdentifier treeId, final L listener) { + public > ListenerRegistration + registerDataTreeChangeListener(final DataTreeIdentifier treeId, final L listener) { final DOMDataTreeIdentifier domIdentifier = toDomTreeIdentifier(treeId); - final BindingDOMDataTreeChangeListenerAdapter domListener = new BindingDOMDataTreeChangeListenerAdapter<>(codec,listener, treeId.getDatastoreType()); - final ListenerRegistration> domReg = dataTreeChangeService.registerDataTreeChangeListener(domIdentifier, domListener); + + @SuppressWarnings({ "rawtypes", "unchecked" }) + final BindingDOMDataTreeChangeListenerAdapter domListener = + listener instanceof ClusteredDataTreeChangeListener + ? new BindingClusteredDOMDataTreeChangeListenerAdapter<>( + codec, (ClusteredDataTreeChangeListener) listener, treeId.getDatastoreType()) + : new BindingDOMDataTreeChangeListenerAdapter<>(codec, listener, treeId.getDatastoreType()); + + final ListenerRegistration> domReg = + dataTreeChangeService.registerDataTreeChangeListener(domIdentifier, domListener); return new BindingDataTreeChangeListenerRegistration<>(listener,domReg); }