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%2FForwardedBindingDataBroker.java;h=6359b60684ef45e18d2185d1231b14b165497724;hp=5ab088e20ec20b072e08bf1e277af48a6dbda4a1;hb=747057973fbd40d1e84d6608c0dc51cb1683f697;hpb=bef0749bb2517eaae6a501be501e16a7d3905045 diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBindingDataBroker.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBindingDataBroker.java index 5ab088e20e..6359b60684 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBindingDataBroker.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBindingDataBroker.java @@ -7,27 +7,17 @@ */ package org.opendaylight.controller.md.sal.binding.impl; -import org.opendaylight.controller.md.sal.binding.api.BindingDataBroker; -import org.opendaylight.controller.md.sal.binding.api.BindingDataReadTransaction; -import org.opendaylight.controller.md.sal.binding.api.BindingDataReadWriteTransaction; -import org.opendaylight.controller.md.sal.binding.api.BindingDataWriteTransaction; -import org.opendaylight.controller.md.sal.common.api.TransactionStatus; -import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; + +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.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.common.api.data.TransactionChainListener; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.controller.sal.core.api.model.SchemaService; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService; -import com.google.common.base.Optional; -import com.google.common.util.concurrent.ListenableFuture; - /** * The DataBrokerImpl simply defers to the DOMDataBroker for all its operations. * All transactions and listener registrations are wrapped by the DataBrokerImpl @@ -36,111 +26,32 @@ import com.google.common.util.concurrent.ListenableFuture; * Besides this the DataBrokerImpl and it's collaborators also cache data that * is already transformed from the binding independent to binding aware format * - * TODO : All references in this class to CompositeNode should be switched to - * NormalizedNode once the MappingService is updated - * + */ -public class ForwardedBindingDataBroker extends AbstractForwardedDataBroker implements BindingDataBroker { +public class ForwardedBindingDataBroker extends AbstractForwardedDataBroker implements DataBroker { public ForwardedBindingDataBroker(final DOMDataBroker domDataBroker, final BindingIndependentMappingService mappingService, final SchemaService schemaService) { super(domDataBroker, mappingService,schemaService); } @Override - public BindingDataReadTransaction newReadOnlyTransaction() { + + public ReadOnlyTransaction newReadOnlyTransaction() { return new BindingDataReadTransactionImpl(getDelegate().newReadOnlyTransaction(),getCodec()); } @Override - public BindingDataReadWriteTransaction newReadWriteTransaction() { + public ReadWriteTransaction newReadWriteTransaction() { return new BindingDataReadWriteTransactionImpl(getDelegate().newReadWriteTransaction(),getCodec()); } @Override - public BindingDataWriteTransaction newWriteOnlyTransaction() { - return new BindingDataWriteTransactionImpl(getDelegate().newWriteOnlyTransaction(),getCodec()); - } - - private abstract class AbstractBindingTransaction>> - extends AbstractForwardedTransaction implements AsyncTransaction, DataObject> { - - protected AbstractBindingTransaction(final T delegate, final BindingToNormalizedNodeCodec codec) { - super(delegate, codec); - } - - @Override - public Object getIdentifier() { - return getDelegate().getIdentifier(); - } - - @Override - public void close() { - getDelegate().close(); - } - + public WriteTransaction newWriteOnlyTransaction() { + return new BindingDataWriteTransactionImpl<>(getDelegate().newWriteOnlyTransaction(),getCodec()); } - private class BindingDataReadTransactionImpl extends AbstractBindingTransaction implements - BindingDataReadTransaction { - - protected BindingDataReadTransactionImpl(final DOMDataReadTransaction delegate, - final BindingToNormalizedNodeCodec codec) { - super(delegate, codec); - } - - @Override - public ListenableFuture> read(final LogicalDatastoreType store, - final InstanceIdentifier path) { - return doRead(getDelegate(), store, path); - } - } - - private class BindingDataWriteTransactionImpl extends - AbstractBindingTransaction implements BindingDataWriteTransaction { - - protected BindingDataWriteTransactionImpl(final T delegate, final BindingToNormalizedNodeCodec codec) { - super(delegate, codec); - - } - - @Override - public void cancel() { - doCancel(getDelegate()); - } - - @Override - public void put(final LogicalDatastoreType store, final InstanceIdentifier path, final DataObject data) { - doPut(getDelegate(), store, path, data); - } - - @Override - public void merge(final LogicalDatastoreType store, final InstanceIdentifier path, final DataObject data) { - doMerge(getDelegate(), store, path, data); - } - - @Override - public void delete(final LogicalDatastoreType store, final InstanceIdentifier path) { - doDelete(getDelegate(), store, path); - } - - @Override - public ListenableFuture> commit() { - return doCommit(getDelegate()); - } - } - - private class BindingDataReadWriteTransactionImpl extends - BindingDataWriteTransactionImpl implements BindingDataReadWriteTransaction { - - protected BindingDataReadWriteTransactionImpl(final DOMDataReadWriteTransaction delegate, - final BindingToNormalizedNodeCodec codec) { - super(delegate, codec); - } - - @Override - public ListenableFuture> read(final LogicalDatastoreType store, - final InstanceIdentifier path) { - return doRead(getDelegate(), store, path); - } + @Override + public BindingTransactionChain createTransactionChain(final TransactionChainListener listener) { + return new BindingTranslatedTransactionChain(getDelegate(), getCodec(), listener); } }