2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.sal.binding.impl;
\r
11 import java.util.concurrent.Future;
\r
12 import java.util.concurrent.atomic.AtomicLong;
\r
14 import org.opendaylight.controller.md.sal.common.impl.service.AbstractDataBroker;
\r
15 import org.opendaylight.controller.sal.binding.api.data.DataChangeListener;
\r
16 import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
\r
17 import org.opendaylight.controller.sal.binding.impl.util.BindingAwareDataReaderRouter;
\r
18 import org.opendaylight.controller.sal.common.DataStoreIdentifier;
\r
19 import org.opendaylight.yangtools.yang.binding.DataObject;
\r
20 import org.opendaylight.yangtools.yang.binding.DataRoot;
\r
21 import org.opendaylight.yangtools.yang.binding.Identifiable;
\r
22 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
\r
23 import org.opendaylight.yangtools.yang.common.RpcResult;
\r
26 public class DataBrokerImpl extends AbstractDataBroker<InstanceIdentifier<? extends DataObject>, DataObject, DataChangeListener> //
\r
27 implements DataProviderService, AutoCloseable {
\r
29 private final AtomicLong nextTransaction = new AtomicLong();
\r
30 private final AtomicLong createdTransactionsCount = new AtomicLong();
\r
32 public AtomicLong getCreatedTransactionsCount() {
\r
33 return createdTransactionsCount;
\r
36 public DataBrokerImpl() {
\r
37 setDataReadRouter(new BindingAwareDataReaderRouter());
\r
41 public DataTransactionImpl beginTransaction() {
\r
42 String transactionId = "BA-" + nextTransaction.getAndIncrement();
\r
43 createdTransactionsCount.getAndIncrement();
\r
44 return new DataTransactionImpl(transactionId,this);
\r
49 public <T extends DataRoot> T getData(DataStoreIdentifier store, Class<T> rootType) {
\r
50 throw new UnsupportedOperationException("Deprecated");
\r
55 public <T extends DataRoot> T getData(DataStoreIdentifier store, T filter) {
\r
56 throw new UnsupportedOperationException("Deprecated");
\r
61 public <T extends DataRoot> T getCandidateData(DataStoreIdentifier store, Class<T> rootType) {
\r
62 throw new UnsupportedOperationException("Deprecated");
\r
67 public <T extends DataRoot> T getCandidateData(DataStoreIdentifier store, T filter) {
\r
68 throw new UnsupportedOperationException("Deprecated");
\r
73 public RpcResult<DataRoot> editCandidateData(DataStoreIdentifier store, DataRoot changeSet) {
\r
74 throw new UnsupportedOperationException("Deprecated");
\r
79 public Future<RpcResult<Void>> commit(DataStoreIdentifier store) {
\r
80 throw new UnsupportedOperationException("Deprecated");
\r
85 public DataObject getData(InstanceIdentifier<? extends DataObject> data) {
\r
86 throw new UnsupportedOperationException("Deprecated");
\r
91 public DataObject getConfigurationData(InstanceIdentifier<?> data) {
\r
92 throw new UnsupportedOperationException("Deprecated");
\r
97 public void registerChangeListener(InstanceIdentifier<? extends DataObject> path, DataChangeListener changeListener) {
\r
98 throw new UnsupportedOperationException("Deprecated");
\r
103 public void unregisterChangeListener(InstanceIdentifier<? extends DataObject> path,
\r
104 DataChangeListener changeListener) {
\r
105 throw new UnsupportedOperationException("Deprecated");
\r
109 public void close() throws Exception {
\r
115 protected boolean isAffectedBy(InstanceIdentifier<? extends DataObject> key,
116 Set<InstanceIdentifier<? extends DataObject>> paths) {
117 if (paths.contains(key)) {
120 for (InstanceIdentifier<?> path : paths) {
121 if (key.containsWildcarded(path)) {