5db522f56c34b6c6816b067d96441034a01dfed1
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / sal / binding / impl / DataBrokerImpl.java
1 package org.opendaylight.controller.sal.binding.impl;\r
2 \r
3 import java.util.Set;
4 import java.util.concurrent.Future;\r
5 import java.util.concurrent.atomic.AtomicLong;\r
6
7 import org.opendaylight.controller.md.sal.common.impl.service.AbstractDataBroker;\r
8 import org.opendaylight.controller.sal.binding.api.data.DataChangeListener;\r
9 import org.opendaylight.controller.sal.binding.api.data.DataProviderService;\r
10 import org.opendaylight.controller.sal.binding.impl.util.BindingAwareDataReaderRouter;\r
11 import org.opendaylight.controller.sal.common.DataStoreIdentifier;\r
12 import org.opendaylight.yangtools.yang.binding.DataObject;\r
13 import org.opendaylight.yangtools.yang.binding.DataRoot;\r
14 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
15 import org.opendaylight.yangtools.yang.common.RpcResult;\r
16 \r
17 \r
18 public class DataBrokerImpl extends AbstractDataBroker<InstanceIdentifier<? extends DataObject>, DataObject, DataChangeListener> implements\r
19         DataProviderService, AutoCloseable {\r
20 \r
21     private final AtomicLong nextTransaction = new AtomicLong();\r
22     private final AtomicLong createdTransactionsCount = new AtomicLong();\r
23     \r
24     public AtomicLong getCreatedTransactionsCount() {\r
25         return createdTransactionsCount;\r
26     }\r
27 \r
28     public DataBrokerImpl() {\r
29         setDataReadRouter(new BindingAwareDataReaderRouter());\r
30     }\r
31 \r
32     @Override\r
33     public DataTransactionImpl beginTransaction() {\r
34         String transactionId = "BA-" + nextTransaction.getAndIncrement();\r
35         createdTransactionsCount.getAndIncrement();\r
36         return new DataTransactionImpl(transactionId,this);\r
37     }\r
38 \r
39     @Override\r
40     @Deprecated\r
41     public <T extends DataRoot> T getData(DataStoreIdentifier store, Class<T> rootType) {\r
42         throw new UnsupportedOperationException("Deprecated");\r
43     }\r
44 \r
45     @Override\r
46     @Deprecated\r
47     public <T extends DataRoot> T getData(DataStoreIdentifier store, T filter) {\r
48         throw new UnsupportedOperationException("Deprecated");\r
49     }\r
50 \r
51     @Override\r
52     @Deprecated\r
53     public <T extends DataRoot> T getCandidateData(DataStoreIdentifier store, Class<T> rootType) {\r
54         throw new UnsupportedOperationException("Deprecated");\r
55     }\r
56 \r
57     @Override\r
58     @Deprecated\r
59     public <T extends DataRoot> T getCandidateData(DataStoreIdentifier store, T filter) {\r
60         throw new UnsupportedOperationException("Deprecated");\r
61     }\r
62 \r
63     @Override\r
64     @Deprecated\r
65     public RpcResult<DataRoot> editCandidateData(DataStoreIdentifier store, DataRoot changeSet) {\r
66         throw new UnsupportedOperationException("Deprecated");\r
67     }\r
68 \r
69     @Override\r
70     @Deprecated\r
71     public Future<RpcResult<Void>> commit(DataStoreIdentifier store) {\r
72         throw new UnsupportedOperationException("Deprecated");\r
73     }\r
74 \r
75     @Override\r
76     @Deprecated\r
77     public DataObject getData(InstanceIdentifier<? extends DataObject> data) {\r
78         throw new UnsupportedOperationException("Deprecated");\r
79     }\r
80 \r
81     @Override\r
82     @Deprecated\r
83     public DataObject getConfigurationData(InstanceIdentifier<?> data) {\r
84         throw new UnsupportedOperationException("Deprecated");\r
85     }\r
86 \r
87     @Override\r
88     @Deprecated\r
89     public void registerChangeListener(InstanceIdentifier<? extends DataObject> path, DataChangeListener changeListener) {\r
90         throw new UnsupportedOperationException("Deprecated");\r
91     }\r
92 \r
93     @Override\r
94     @Deprecated\r
95     public void unregisterChangeListener(InstanceIdentifier<? extends DataObject> path,\r
96             DataChangeListener changeListener) {\r
97         throw new UnsupportedOperationException("Deprecated");\r
98     }\r
99     \r
100     @Override\r
101     public void close() throws Exception {\r
102         \r
103     }
104     
105     
106     @Override
107     protected boolean isAffectedBy(InstanceIdentifier<? extends DataObject> key,
108             Set<InstanceIdentifier<? extends DataObject>> paths) {
109         if (paths.contains(key)) {
110             return true;
111         }
112         for (InstanceIdentifier<?> path : paths) {
113             if (key.containsWildcarded(path)) {
114                 return true;
115             }
116         }
117
118         return false;
119     }\r
120 }