Merge "Fixed bug when Binding-Aware Data Change Listeners we're not triggered."
[controller.git] / opendaylight / md-sal / sal-restconf-broker / src / main / java / org / opendaylight / controller / sal / restconf / broker / event / RemoteDataChangeEvent.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.controller.sal.restconf.broker.event;
9
10 import java.util.HashMap;
11 import java.util.HashSet;
12 import java.util.Map;
13 import java.util.Set;
14 import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.DataChangedNotification;
16 import org.opendaylight.yangtools.yang.binding.DataObject;
17 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
18
19 public class RemoteDataChangeEvent implements DataChangeEvent<InstanceIdentifier<? extends DataObject>,DataObject> {
20
21
22     private final DataChangedNotification dataChangedNotification;
23
24
25     public RemoteDataChangeEvent(DataChangedNotification dataChangedNotification){
26
27         this.dataChangedNotification = dataChangedNotification;
28     }
29
30     @Override
31     public DataObject getOriginalConfigurationSubtree() {
32         throw new UnsupportedOperationException();
33     }
34
35     @Override
36     public DataObject getOriginalOperationalSubtree() {
37         throw new UnsupportedOperationException();
38     }
39
40     @Override
41     public DataObject getUpdatedConfigurationSubtree() {
42         throw new UnsupportedOperationException();
43     }
44
45     @Override
46     public DataObject getUpdatedOperationalSubtree() {
47         throw new UnsupportedOperationException();
48     }
49
50     @Override
51     public Map<InstanceIdentifier<?>, DataObject> getCreatedOperationalData() {
52         return new HashMap<InstanceIdentifier<?>, DataObject>(){{
53             for (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent d :dataChangedNotification.getDataChangeEvent()){
54                 if (d.getOperation().getIntValue() == 0 && d.getStore().getIntValue() == 1){
55                     put(d.getPath(),d);
56                 }
57             }
58         }};
59     }
60
61     @Override
62     public Map<InstanceIdentifier<?>, DataObject> getCreatedConfigurationData() {
63         return new HashMap<InstanceIdentifier<?>, DataObject>(){{
64             for (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent d :dataChangedNotification.getDataChangeEvent()){
65                 if (d.getOperation().getIntValue() == 0 && d.getStore().getIntValue() == 0){
66                     put(d.getPath(),d);
67                 }
68             }
69         }};
70     }
71
72     @Override
73     public Map<InstanceIdentifier<?>, DataObject> getUpdatedOperationalData() {
74         return new HashMap<InstanceIdentifier<?>, DataObject>(){{
75             for (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent d :dataChangedNotification.getDataChangeEvent()){
76                 if (d.getOperation().getIntValue() == 1 && d.getStore().getIntValue() == 1){
77                     put(d.getPath(),d);
78                 }
79             }
80         }};
81     }
82
83     @Override
84     public Map<InstanceIdentifier<?>, DataObject> getUpdatedConfigurationData() {
85         return new HashMap<InstanceIdentifier<?>, DataObject>(){{
86             for (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent d :dataChangedNotification.getDataChangeEvent()){
87                 if (d.getOperation().getIntValue() == 1 && d.getStore().getIntValue() == 0){
88                     put(d.getPath(),d);
89                 }
90             }
91         }};
92     }
93
94     @Override
95     public Set<InstanceIdentifier<?>> getRemovedConfigurationData() {
96         return new HashSet<InstanceIdentifier<?>>(){{
97             for (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent d :dataChangedNotification.getDataChangeEvent()){
98                 if (d.getOperation().getIntValue() == 2 && d.getStore().getIntValue() == 0){
99                     add(d.getPath());
100                 }
101             }
102         }};
103     }
104
105     @Override
106     public Set<InstanceIdentifier<?>> getRemovedOperationalData() {
107         return new HashSet<InstanceIdentifier<?>>(){{
108             for (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent d :dataChangedNotification.getDataChangeEvent()){
109                 if (d.getOperation().getIntValue() == 2 && d.getStore().getIntValue() == 1){
110                     add(d.getPath());
111                 }
112             }
113         }};
114     }
115
116     @Override
117     public Map<InstanceIdentifier<?>, DataObject> getOriginalConfigurationData() {
118         return new HashMap<InstanceIdentifier<?>, DataObject>(){{
119             for (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent d :dataChangedNotification.getDataChangeEvent()){
120                 if (d.getOperation().getIntValue() == 1 && d.getStore().getIntValue() == 0){
121                     put(d.getPath(),d);
122                 }
123             }
124         }};
125     }
126
127     @Override
128     public Map<InstanceIdentifier<?>, DataObject> getOriginalOperationalData() {
129         return new HashMap<InstanceIdentifier<?>, DataObject>(){{
130             for (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent d :dataChangedNotification.getDataChangeEvent()){
131                 if (d.getOperation().getIntValue() == 1 && d.getStore().getIntValue() == 1){
132                     put(d.getPath(),d);
133                 }
134             }
135         }};
136     }
137 }