2 * Copyright (c) 2013 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.restconf.broker.event;
10 import java.util.Collections;
11 import java.util.HashMap;
12 import java.util.HashSet;
16 import javax.annotation.concurrent.ThreadSafe;
18 import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.DataChangedNotification;
20 import org.opendaylight.yangtools.yang.binding.DataObject;
21 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
24 public class RemoteDataChangeEvent implements DataChangeEvent<InstanceIdentifier<? extends DataObject>,DataObject> {
25 private final Map<InstanceIdentifier<?>, DataObject> createdConfig, createdOper, origConfig, origOper, updatedConfig, updatedOper;
26 private final Set<InstanceIdentifier<?>> removedConfig, removedOper;
28 public RemoteDataChangeEvent(DataChangedNotification dataChangedNotification) {
29 final Map<InstanceIdentifier<?>, DataObject> createdConfig = new HashMap<>();
30 final Map<InstanceIdentifier<?>, DataObject> createdOper = new HashMap<>();
31 final Map<InstanceIdentifier<?>, DataObject> origConfig = new HashMap<>();
32 final Map<InstanceIdentifier<?>, DataObject> origOper = new HashMap<>();
33 final Map<InstanceIdentifier<?>, DataObject> updatedConfig = new HashMap<>();
34 final Map<InstanceIdentifier<?>, DataObject> updatedOper = new HashMap<>();
35 final Set<InstanceIdentifier<?>> removedConfig = new HashSet<>();
36 final Set<InstanceIdentifier<?>> removedOper = new HashSet<>();
38 for (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.data.changed.notification.DataChangeEvent d :dataChangedNotification.getDataChangeEvent()) {
39 switch (d.getOperation()) {
41 switch (d.getStore()) {
43 createdConfig.put(d.getPath(), d);
46 createdOper.put(d.getPath(), d);
51 switch (d.getStore()) {
53 removedConfig.add(d.getPath());
56 removedOper.add(d.getPath());
61 switch (d.getStore()) {
63 origConfig.put(d.getPath(), d);
64 updatedConfig.put(d.getPath(), d);
67 origOper.put(d.getPath(),d);
68 updatedOper.put(d.getPath(),d);
75 this.createdConfig = Collections.unmodifiableMap(createdConfig);
76 this.createdOper = Collections.unmodifiableMap(createdOper);
77 this.origConfig = Collections.unmodifiableMap(origConfig);
78 this.origOper = Collections.unmodifiableMap(origOper);
79 this.updatedConfig = Collections.unmodifiableMap(updatedConfig);
80 this.updatedOper = Collections.unmodifiableMap(updatedOper);
81 this.removedConfig = Collections.unmodifiableSet(removedConfig);
82 this.removedOper = Collections.unmodifiableSet(removedOper);
86 public DataObject getOriginalConfigurationSubtree() {
87 throw new UnsupportedOperationException();
91 public DataObject getOriginalOperationalSubtree() {
92 throw new UnsupportedOperationException();
96 public DataObject getUpdatedConfigurationSubtree() {
97 throw new UnsupportedOperationException();
101 public DataObject getUpdatedOperationalSubtree() {
102 throw new UnsupportedOperationException();
106 public Map<InstanceIdentifier<?>, DataObject> getCreatedOperationalData() {
111 public Map<InstanceIdentifier<?>, DataObject> getCreatedConfigurationData() {
112 return createdConfig;
116 public Map<InstanceIdentifier<?>, DataObject> getUpdatedOperationalData() {
121 public Map<InstanceIdentifier<?>, DataObject> getUpdatedConfigurationData() {
122 return updatedConfig;
126 public Set<InstanceIdentifier<?>> getRemovedConfigurationData() {
127 return removedConfig;
131 public Set<InstanceIdentifier<?>> getRemovedOperationalData() {
136 public Map<InstanceIdentifier<?>, DataObject> getOriginalConfigurationData() {
141 public Map<InstanceIdentifier<?>, DataObject> getOriginalOperationalData() {