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%2Fimpl%2FBindingDOMDataTreeChangeServiceAdapter.java;h=8ed8997ac1541050505fa92435c76ce4a6788524;hp=ad0ab54e9f700479200f5411316b2430c6908788;hb=aaea3e9a92ae9d6fac04c4a065db4b35cbca9ed0;hpb=78527e81f8cc82140af5cb2649863a597f380291 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 ad0ab54e9f..8ed8997ac1 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 @@ -7,7 +7,9 @@ */ package org.opendaylight.controller.md.sal.binding.impl; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + +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; @@ -17,17 +19,17 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.DataObject; 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(forRemoval = true) final class BindingDOMDataTreeChangeServiceAdapter implements DataTreeChangeService { private final BindingToNormalizedNodeCodec codec; @@ -35,8 +37,8 @@ final class BindingDOMDataTreeChangeServiceAdapter implements DataTreeChangeServ private BindingDOMDataTreeChangeServiceAdapter(final BindingToNormalizedNodeCodec codec, final DOMDataTreeChangeService dataTreeChangeService) { - this.codec = Preconditions.checkNotNull(codec); - this.dataTreeChangeService = Preconditions.checkNotNull(dataTreeChangeService); + this.codec = requireNonNull(codec); + this.dataTreeChangeService = requireNonNull(dataTreeChangeService); } static DataTreeChangeService create(final BindingToNormalizedNodeCodec codec, @@ -45,16 +47,24 @@ 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); } private DOMDataTreeIdentifier toDomTreeIdentifier(final DataTreeIdentifier treeId) { - final YangInstanceIdentifier domPath = codec.toYangInstanceIdentifier(treeId.getRootIdentifier()); + final YangInstanceIdentifier domPath = codec.toYangInstanceIdentifierBlocking(treeId.getRootIdentifier()); return new DOMDataTreeIdentifier(treeId.getDatastoreType(), domPath); } }