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