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; } }