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=bba1747e7c4b8b1ebda8ce4f64764d796c3f8f3c;hp=5ab088e20ec20b072e08bf1e277af48a6dbda4a1;hb=874a18a9ce5dc09bc49922754bf8fb3e981fffb9;hpb=ebd9aba9e844229de613a2b60b5d21119fcee968 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..bba1747e7c 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,26 +7,20 @@ */ 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 com.google.common.collect.ClassToInstanceMap; +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.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.DOMDataReadTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; +import org.opendaylight.controller.md.sal.dom.api.DOMService; 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. @@ -36,111 +30,65 @@ 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 ForwardedBindingDataBroker(final DOMDataBroker domDataBroker, final BindingIndependentMappingService mappingService, final SchemaService schemaService) { - super(domDataBroker, mappingService,schemaService); - } - @Override - public BindingDataReadTransaction newReadOnlyTransaction() { - return new BindingDataReadTransactionImpl(getDelegate().newReadOnlyTransaction(),getCodec()); - } - - @Override - public BindingDataReadWriteTransaction newReadWriteTransaction() { - return new BindingDataReadWriteTransactionImpl(getDelegate().newReadWriteTransaction(),getCodec()); - } - - @Override - public BindingDataWriteTransaction newWriteOnlyTransaction() { - return new BindingDataWriteTransactionImpl(getDelegate().newWriteOnlyTransaction(),getCodec()); - } + */ +public class ForwardedBindingDataBroker extends AbstractForwardedDataBroker implements DataBroker { - private abstract class AbstractBindingTransaction>> - extends AbstractForwardedTransaction implements AsyncTransaction, DataObject> { - protected AbstractBindingTransaction(final T delegate, final BindingToNormalizedNodeCodec codec) { - super(delegate, codec); - } + static final Factory BUILDER_FACTORY = new BindingDOMAdapterBuilder.Factory() { @Override - public Object getIdentifier() { - return getDelegate().getIdentifier(); + public BindingDOMAdapterBuilder newBuilder() { + return new Builder(); } - @Override - public void close() { - getDelegate().close(); - } + }; + public ForwardedBindingDataBroker(final DOMDataBroker domDataBroker, final BindingToNormalizedNodeCodec codec) { + super(domDataBroker, codec); } - 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); - } + @Deprecated + public ForwardedBindingDataBroker(final DOMDataBroker domDataBroker, final BindingToNormalizedNodeCodec codec, final SchemaService schemaService) { + super(domDataBroker, codec,schemaService); } - private class BindingDataWriteTransactionImpl extends - AbstractBindingTransaction implements BindingDataWriteTransaction { + @Override - protected BindingDataWriteTransactionImpl(final T delegate, final BindingToNormalizedNodeCodec codec) { - super(delegate, codec); + public ReadOnlyTransaction newReadOnlyTransaction() { + return new BindingDataReadTransactionImpl(getDelegate().newReadOnlyTransaction(),getCodec()); + } - } + @Override + public ReadWriteTransaction newReadWriteTransaction() { + return new BindingDataReadWriteTransactionImpl(getDelegate().newReadWriteTransaction(),getCodec()); + } - @Override - public void cancel() { - doCancel(getDelegate()); - } + @Override + public WriteTransaction newWriteOnlyTransaction() { + return new BindingDataWriteTransactionImpl<>(getDelegate().newWriteOnlyTransaction(),getCodec()); + } - @Override - public void put(final LogicalDatastoreType store, final InstanceIdentifier path, final DataObject data) { - doPut(getDelegate(), store, path, data); - } + @Override + public BindingTransactionChain createTransactionChain(final TransactionChainListener listener) { + return new BindingTranslatedTransactionChain(getDelegate(), getCodec(), listener); + } - @Override - public void merge(final LogicalDatastoreType store, final InstanceIdentifier path, final DataObject data) { - doMerge(getDelegate(), store, path, data); - } + private static class Builder extends BindingDOMAdapterBuilder { @Override - public void delete(final LogicalDatastoreType store, final InstanceIdentifier path) { - doDelete(getDelegate(), store, path); + public Set> getRequiredDelegates() { + return ImmutableSet.of(DOMDataBroker.class); } @Override - public ListenableFuture> commit() { - return doCommit(getDelegate()); + protected DataBroker createInstance(BindingToNormalizedNodeCodec codec, + ClassToInstanceMap delegates) { + DOMDataBroker domDataBroker = delegates.getInstance(DOMDataBroker.class); + return new ForwardedBindingDataBroker(domDataBroker, codec); } - } - 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); - } } }