X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FBindingDOMDataBrokerAdapter.java;fp=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FBindingDOMDataBrokerAdapter.java;h=f63db76b4fc1a106672e0c28e7c7f00cf60604a8;hb=8542d448f20b0eb4ace904fa0babd24a98d5c4e4;hp=b17be166156574b9a7381fae6155682cd40044a9;hpb=3d256dbaa5db779d7883398a6f44badf88955eaf;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataBrokerAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataBrokerAdapter.java index b17be16615..f63db76b4f 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataBrokerAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataBrokerAdapter.java @@ -13,14 +13,18 @@ import com.google.common.collect.ImmutableSet; import java.util.Set; import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; import org.opendaylight.controller.md.sal.binding.api.DataBroker; +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; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.binding.impl.BindingDOMAdapterBuilder.Factory; import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; +import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeService; import org.opendaylight.controller.md.sal.dom.api.DOMService; -import org.opendaylight.controller.sal.core.api.model.SchemaService; +import org.opendaylight.yangtools.concepts.ListenerRegistration; /** * The DataBrokerImpl simply defers to the DOMDataBroker for all its operations. @@ -43,14 +47,16 @@ public class BindingDOMDataBrokerAdapter extends AbstractForwardedDataBroker imp } }; + private final DataTreeChangeService treeChangeService; public BindingDOMDataBrokerAdapter(final DOMDataBroker domDataBroker, final BindingToNormalizedNodeCodec codec) { super(domDataBroker, codec); - } - - @Deprecated - public BindingDOMDataBrokerAdapter(final DOMDataBroker domDataBroker, final BindingToNormalizedNodeCodec codec, final SchemaService schemaService) { - super(domDataBroker, codec,schemaService); + final DOMDataTreeChangeService domTreeChange = (DOMDataTreeChangeService) domDataBroker.getSupportedExtensions().get(DOMDataTreeChangeService.class); + if(domTreeChange != null) { + treeChangeService = BindingDOMDataTreeChangeServiceAdapter.create(codec, domTreeChange); + } else { + treeChangeService = null; + } } @Override @@ -82,13 +88,20 @@ public class BindingDOMDataBrokerAdapter extends AbstractForwardedDataBroker imp } @Override - protected DataBroker createInstance(BindingToNormalizedNodeCodec codec, - ClassToInstanceMap delegates) { - DOMDataBroker domDataBroker = delegates.getInstance(DOMDataBroker.class); + protected DataBroker createInstance(final BindingToNormalizedNodeCodec codec, + final ClassToInstanceMap delegates) { + final DOMDataBroker domDataBroker = delegates.getInstance(DOMDataBroker.class); return new BindingDOMDataBrokerAdapter(domDataBroker, codec); } + } - + public ListenerRegistration registerDataTreeChangeListener( + final DataTreeIdentifier treeId, final L listener) { + if(treeChangeService == null) { + throw new UnsupportedOperationException("Underlying data broker does not expose DOMDataTreeChangeService."); + } + return treeChangeService.registerDataTreeChangeListener(treeId, listener); } + }