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%2Fsal%2Fbinding%2Fimpl%2FDataBrokerImpl.java;h=0069de98026dfa2f710e77fc3b60b3a026e6f37d;hp=7a1ca11fb67b918e55403c9edada58fc2844ed3d;hb=696c988be117c8aa1afa39502ff2e56c9b72e834;hpb=d542617f3486541cf9937009fb6aa1e3f2c9f0e2 diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/DataBrokerImpl.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/DataBrokerImpl.java index 7a1ca11fb6..0069de9802 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/DataBrokerImpl.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/DataBrokerImpl.java @@ -1,93 +1,120 @@ -package org.opendaylight.controller.sal.binding.impl; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Future; - -import org.opendaylight.controller.md.sal.common.api.data.DataReader; -import org.opendaylight.controller.md.sal.common.impl.service.AbstractDataBroker; -import org.opendaylight.controller.sal.binding.api.data.DataChangeListener; -import org.opendaylight.controller.sal.binding.api.data.DataProviderService; -import org.opendaylight.controller.sal.binding.impl.util.BindingAwareDataReaderRouter; -import org.opendaylight.controller.sal.common.DataStoreIdentifier; -import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.DataRoot; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcResult; - - -public class DataBrokerImpl extends AbstractDataBroker, DataObject, DataChangeListener> implements - DataProviderService { - - public DataBrokerImpl() { - setDataReadRouter(new BindingAwareDataReaderRouter()); - } - - @Override - public DataTransactionImpl beginTransaction() { - return new DataTransactionImpl(this); - } - - @Override - public T getData(DataStoreIdentifier store, Class rootType) { - // TODO Auto-generated method stub - return null; - } - - @Override - public T getData(DataStoreIdentifier store, T filter) { - // TODO Auto-generated method stub - return null; - } - - @Override - public T getCandidateData(DataStoreIdentifier store, Class rootType) { - // TODO Auto-generated method stub - return null; - } - - @Override - public T getCandidateData(DataStoreIdentifier store, T filter) { - // TODO Auto-generated method stub - return null; - } - - @Override - public RpcResult editCandidateData(DataStoreIdentifier store, DataRoot changeSet) { - // TODO Auto-generated method stub - return null; - } - - @Override - public Future> commit(DataStoreIdentifier store) { - // TODO Auto-generated method stub - return null; - } - - @Override - public DataObject getData(InstanceIdentifier data) { - // TODO Auto-generated method stub - return null; - } - - @Override - public DataObject getConfigurationData(InstanceIdentifier data) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void registerChangeListener(InstanceIdentifier path, DataChangeListener changeListener) { - // TODO Auto-generated method stub - - } - - @Override - public void unregisterChangeListener(InstanceIdentifier path, - DataChangeListener changeListener) { - // TODO Auto-generated method stub - +package org.opendaylight.controller.sal.binding.impl; + +import java.util.Set; +import java.util.concurrent.Future; +import java.util.concurrent.atomic.AtomicLong; + +import org.opendaylight.controller.md.sal.common.impl.service.AbstractDataBroker; +import org.opendaylight.controller.sal.binding.api.data.DataChangeListener; +import org.opendaylight.controller.sal.binding.api.data.DataProviderService; +import org.opendaylight.controller.sal.binding.impl.util.BindingAwareDataReaderRouter; +import org.opendaylight.controller.sal.common.DataStoreIdentifier; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.binding.DataRoot; +import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.RpcResult; + + +public class DataBrokerImpl extends AbstractDataBroker, DataObject, DataChangeListener> // + implements DataProviderService, AutoCloseable { + + private final AtomicLong nextTransaction = new AtomicLong(); + private final AtomicLong createdTransactionsCount = new AtomicLong(); + + public AtomicLong getCreatedTransactionsCount() { + return createdTransactionsCount; + } + + public DataBrokerImpl() { + setDataReadRouter(new BindingAwareDataReaderRouter()); + } + + @Override + public DataTransactionImpl beginTransaction() { + String transactionId = "BA-" + nextTransaction.getAndIncrement(); + createdTransactionsCount.getAndIncrement(); + return new DataTransactionImpl(transactionId,this); + } + + @Override + @Deprecated + public T getData(DataStoreIdentifier store, Class rootType) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + @Deprecated + public T getData(DataStoreIdentifier store, T filter) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + @Deprecated + public T getCandidateData(DataStoreIdentifier store, Class rootType) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + @Deprecated + public T getCandidateData(DataStoreIdentifier store, T filter) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + @Deprecated + public RpcResult editCandidateData(DataStoreIdentifier store, DataRoot changeSet) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + @Deprecated + public Future> commit(DataStoreIdentifier store) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + @Deprecated + public DataObject getData(InstanceIdentifier data) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + @Deprecated + public DataObject getConfigurationData(InstanceIdentifier data) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + @Deprecated + public void registerChangeListener(InstanceIdentifier path, DataChangeListener changeListener) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + @Deprecated + public void unregisterChangeListener(InstanceIdentifier path, + DataChangeListener changeListener) { + throw new UnsupportedOperationException("Deprecated"); + } + + @Override + public void close() throws Exception { + } + @Override + protected boolean isAffectedBy(InstanceIdentifier key, + Set> paths) { + if (paths.contains(key)) { + return true; + } + for (InstanceIdentifier path : paths) { + if (key.containsWildcarded(path)) { + return true; + } + } + return false; + } } \ No newline at end of file