8f62be97d801f7a557026a1aacd054bdaf5f6936
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / sal / dom / broker / DataBrokerImpl.java
1 package org.opendaylight.controller.sal.dom.broker;
2
3 import java.util.concurrent.atomic.AtomicLong;
4
5 import org.opendaylight.controller.md.sal.common.api.data.DataReader;
6 import org.opendaylight.controller.md.sal.common.impl.service.AbstractDataBroker;
7 import org.opendaylight.controller.sal.common.DataStoreIdentifier;
8 import org.opendaylight.controller.sal.core.api.data.DataChangeListener;
9 import org.opendaylight.controller.sal.core.api.data.DataProviderService;
10 import org.opendaylight.controller.sal.core.api.data.DataValidator;
11 import org.opendaylight.controller.sal.dom.broker.impl.DataReaderRouter;
12 import org.opendaylight.yangtools.concepts.Registration;
13 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
14 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
15
16 import com.google.common.util.concurrent.MoreExecutors;
17
18 public class DataBrokerImpl extends AbstractDataBroker<InstanceIdentifier, CompositeNode, DataChangeListener> implements
19         DataProviderService, AutoCloseable {
20
21     private AtomicLong nextTransaction = new AtomicLong();
22     private final AtomicLong createdTransactionsCount = new AtomicLong();
23     
24     public DataBrokerImpl() {
25         setDataReadRouter(new DataReaderRouter());
26         setExecutor(MoreExecutors.sameThreadExecutor());
27     }
28     
29     public AtomicLong getCreatedTransactionsCount() {
30         return createdTransactionsCount;
31     }
32     
33     @Override
34     public DataTransactionImpl beginTransaction() {
35         String transactionId = "DOM-" + nextTransaction.getAndIncrement();
36         createdTransactionsCount.getAndIncrement();
37         return new DataTransactionImpl(transactionId,this);
38     }
39
40     @Override
41     public Registration<DataReader<InstanceIdentifier, CompositeNode>> registerConfigurationReader(
42             InstanceIdentifier path, DataReader<InstanceIdentifier, CompositeNode> reader) {
43         return getDataReadRouter().registerConfigurationReader(path, reader);
44     }
45
46     @Override
47     public Registration<DataReader<InstanceIdentifier, CompositeNode>> registerOperationalReader(
48             InstanceIdentifier path, DataReader<InstanceIdentifier, CompositeNode> reader) {
49         return getDataReadRouter().registerOperationalReader(path, reader);
50     }
51
52     @Deprecated
53     @Override
54     public void addValidator(DataStoreIdentifier store, DataValidator validator) {
55         throw new UnsupportedOperationException("Deprecated");
56
57     }
58
59     @Deprecated
60     @Override
61     public void removeValidator(DataStoreIdentifier store, DataValidator validator) {
62         throw new UnsupportedOperationException("Deprecated");
63     }
64
65     @Deprecated
66     @Override
67     public void addRefresher(DataStoreIdentifier store, DataRefresher refresher) {
68         throw new UnsupportedOperationException("Deprecated");
69     }
70
71     @Deprecated
72     @Override
73     public void removeRefresher(DataStoreIdentifier store, DataRefresher refresher) {
74         throw new UnsupportedOperationException("Deprecated");
75     }
76
77     @Override
78     public void close() throws Exception {
79         
80     }
81
82 }