2 * Copyright (C) 2013 EBay Software Foundation
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 * Authors : Ashwin Raveendran, Madhu Venugopal
10 package org.opendaylight.ovsdb.lib.message;
12 import com.fasterxml.jackson.annotation.JsonProperty;
13 import com.google.common.collect.Maps;
14 import org.opendaylight.ovsdb.lib.table.Bridge;
15 import org.opendaylight.ovsdb.lib.table.Capability;
16 import org.opendaylight.ovsdb.lib.table.Interface;
17 import org.opendaylight.ovsdb.lib.table.Port;
18 import org.opendaylight.ovsdb.lib.table.Controller;
19 import org.opendaylight.ovsdb.lib.table.Manager;
20 import org.opendaylight.ovsdb.lib.table.Mirror;
21 import org.opendaylight.ovsdb.lib.table.NetFlow;
22 import org.opendaylight.ovsdb.lib.table.Open_vSwitch;
23 import org.opendaylight.ovsdb.lib.table.Qos;
24 import org.opendaylight.ovsdb.lib.table.Queue;
25 import org.opendaylight.ovsdb.lib.table.SFlow;
26 import org.opendaylight.ovsdb.lib.table.SSL;
27 import org.opendaylight.ovsdb.lib.table.Flow_Sample_Collector_Set;
28 import org.opendaylight.ovsdb.lib.table.Flow_Table;
29 import org.opendaylight.ovsdb.lib.table.IPFIX;
30 import org.opendaylight.ovsdb.lib.table.internal.Table;
36 public class TableUpdates extends Response {
38 Map<Table.Name, TableUpdate> map = Maps.newHashMap();
40 public Set<Table.Name> availableUpdates() {
44 @SuppressWarnings("unchecked")
45 public <T extends Table> TableUpdate<T> getUpdate(Table.Name<T> name) {
49 private <T extends Table> void put(Table.Name<T> name, TableUpdate<T> update) {
50 map.put(name, update);
53 @JsonProperty("Interface")
54 public TableUpdate<Interface> getInterfaceUpdate() {
55 return getUpdate(Interface.NAME);
58 public void setInterfaceUpdate(TableUpdate<Interface> interfaceUpdate) {
59 put(Interface.NAME, interfaceUpdate);
62 @JsonProperty("Bridge")
63 TableUpdate<Bridge> getBridgeUpdate() {
64 return getUpdate(Bridge.NAME);
67 public void setBridgeUpdate(TableUpdate<Bridge> bridgeUpdate) {
68 put(Bridge.NAME, bridgeUpdate);
72 TableUpdate<Port> getPortUpdate() {
73 return getUpdate(Port.NAME);
76 void setPortUpdate(TableUpdate<Port> portUpdate) {
77 put(Port.NAME, portUpdate);
80 @JsonProperty("Capability")
81 public TableUpdate<Capability> getCapabilityUpdate() {
82 return getUpdate(Capability.NAME);
85 public void setCapabilityUpdate(TableUpdate<Capability> capabilityUpdate) {
86 put(Capability.NAME, capabilityUpdate);
89 @JsonProperty("Controller")
90 public TableUpdate<Controller> getControllerUpdate() {
91 return getUpdate(Controller.NAME);
94 public void setControllerUpdate(TableUpdate<Controller> controllerUpdate) {
95 put(Controller.NAME, controllerUpdate);
98 @JsonProperty("Manager")
99 public TableUpdate<Manager> getManagerUpdate() {
100 return getUpdate(Manager.NAME);
103 public void setManagerUpdate(TableUpdate<Manager> managerUpdate) {
104 put(Manager.NAME, managerUpdate);
107 @JsonProperty("Mirror")
108 public TableUpdate<Mirror> getMirrorUpdate() {
109 return getUpdate(Mirror.NAME);
112 public void setMirrorUpdate(TableUpdate<Mirror> mirrorUpdate) {
113 put(Mirror.NAME, mirrorUpdate);
116 @JsonProperty("NetFlow")
117 public TableUpdate<NetFlow> getNetFlowUpdate() {
118 return getUpdate(NetFlow.NAME);
121 public void setNetFlowUpdate(TableUpdate<NetFlow> netFlowUpdate) {
122 put(NetFlow.NAME, netFlowUpdate);
125 @JsonProperty("Open_vSwitch")
126 public TableUpdate<Open_vSwitch> getOpen_vSwitchUpdate() {
127 return getUpdate(Open_vSwitch.NAME);
130 public void setOpen_vSwitchUpdate(TableUpdate<Open_vSwitch> openVSwitchUpdate) {
131 put(Open_vSwitch.NAME, openVSwitchUpdate);
135 public TableUpdate<Qos> getQosUpdate() {
136 return getUpdate(Qos.NAME);
139 public void setQosUpdate(TableUpdate<Qos> qosUpdate) {
140 put(Qos.NAME, qosUpdate);
143 @JsonProperty("Queue")
144 public TableUpdate<Queue> getQueueUpdate() {
145 return getUpdate(Queue.NAME);
148 public void setQueueUpdate(TableUpdate<Queue> queueUpdate) {
149 put(Queue.NAME, queueUpdate);
152 @JsonProperty("sFlow")
153 public TableUpdate<SFlow> getSFlowUpdate() {
154 return getUpdate(SFlow.NAME);
157 public void setSFlowUpdate(TableUpdate<SFlow> sFlowUpdate) {
158 put(SFlow.NAME, sFlowUpdate);
162 public TableUpdate<SSL> getSSLUpdate() {
163 return getUpdate(SSL.NAME);
166 public void setSSLUpdate(TableUpdate<SSL> sslUpdate) {
167 put(SSL.NAME, sslUpdate);
170 @JsonProperty("Flow_Table")
171 public TableUpdate<Flow_Table> getFlow_TableUpdate() {
172 return getUpdate(Flow_Table.NAME);
175 public void setFlow_TableUpdate(TableUpdate<Flow_Table> Flow_TableUpdate) {
176 put(Flow_Table.NAME, Flow_TableUpdate);
179 @JsonProperty("Flow_Sample_Collector_Set")
180 public TableUpdate<Flow_Sample_Collector_Set> getFlow_Sample_Collector_SetUpdate() {
181 return getUpdate(Flow_Sample_Collector_Set.NAME);
184 public void setFlow_Sample_Collector_SetUpdate(TableUpdate<Flow_Sample_Collector_Set> Flow_Sample_Collector_SetUpdate) {
185 put(Flow_Sample_Collector_Set.NAME, Flow_Sample_Collector_SetUpdate);
188 @JsonProperty("IPFIX")
189 public TableUpdate<IPFIX> getIPFIXUpdate() {
190 return getUpdate(IPFIX.NAME);
193 public void setIPFIXUpdate(TableUpdate<IPFIX> IPFIXUpdate) {
194 put(IPFIX.NAME, IPFIXUpdate);