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;
15 import org.opendaylight.ovsdb.lib.table.Bridge;
16 import org.opendaylight.ovsdb.lib.table.Capability;
17 import org.opendaylight.ovsdb.lib.table.Interface;
18 import org.opendaylight.ovsdb.lib.table.Port;
19 import org.opendaylight.ovsdb.lib.table.Controller;
20 import org.opendaylight.ovsdb.lib.table.Manager;
21 import org.opendaylight.ovsdb.lib.table.Mirror;
22 import org.opendaylight.ovsdb.lib.table.NetFlow;
23 import org.opendaylight.ovsdb.lib.table.Open_vSwitch;
24 import org.opendaylight.ovsdb.lib.table.Qos;
25 import org.opendaylight.ovsdb.lib.table.Queue;
26 import org.opendaylight.ovsdb.lib.table.SFlow;
27 import org.opendaylight.ovsdb.lib.table.SSL;
28 import org.opendaylight.ovsdb.lib.table.Flow_Sample_Collector_Set;
29 import org.opendaylight.ovsdb.lib.table.Flow_Table;
30 import org.opendaylight.ovsdb.lib.table.IPFIX;
31 import org.opendaylight.ovsdb.lib.table.Table;
37 public class TableUpdates extends Response {
39 Map<Table.Name, TableUpdate> map = Maps.newHashMap();
41 public Set<Table.Name> availableUpdates() {
45 @SuppressWarnings("unchecked")
46 public <T extends Table> TableUpdate<T> getUpdate(Table.Name<T> name) {
50 private <T extends Table> void put(Table.Name<T> name, TableUpdate<T> update) {
51 map.put(name, update);
54 @JsonProperty("Interface")
55 public TableUpdate<Interface> getInterfaceUpdate() {
56 return getUpdate(Interface.NAME);
59 public void setInterfaceUpdate(TableUpdate<Interface> interfaceUpdate) {
60 put(Interface.NAME, interfaceUpdate);
63 @JsonProperty("Bridge")
64 TableUpdate<Bridge> getBridgeUpdate() {
65 return getUpdate(Bridge.NAME);
68 public void setBridgeUpdate(TableUpdate<Bridge> bridgeUpdate) {
69 put(Bridge.NAME, bridgeUpdate);
73 TableUpdate<Port> getPortUpdate() {
74 return getUpdate(Port.NAME);
77 void setPortUpdate(TableUpdate<Port> portUpdate) {
78 put(Port.NAME, portUpdate);
81 @JsonProperty("Capability")
82 public TableUpdate<Capability> getCapabilityUpdate() {
83 return getUpdate(Capability.NAME);
86 public void setCapabilityUpdate(TableUpdate<Capability> capabilityUpdate) {
87 put(Capability.NAME, capabilityUpdate);
90 @JsonProperty("Controller")
91 public TableUpdate<Controller> getControllerUpdate() {
92 return getUpdate(Controller.NAME);
95 public void setControllerUpdate(TableUpdate<Controller> controllerUpdate) {
96 put(Controller.NAME, controllerUpdate);
99 @JsonProperty("Manager")
100 public TableUpdate<Manager> getManagerUpdate() {
101 return getUpdate(Manager.NAME);
104 public void setManagerUpdate(TableUpdate<Manager> managerUpdate) {
105 put(Manager.NAME, managerUpdate);
108 @JsonProperty("Mirror")
109 public TableUpdate<Mirror> getMirrorUpdate() {
110 return getUpdate(Mirror.NAME);
113 public void setMirrorUpdate(TableUpdate<Mirror> mirrorUpdate) {
114 put(Mirror.NAME, mirrorUpdate);
117 @JsonProperty("NetFlow")
118 public TableUpdate<NetFlow> getNetFlowUpdate() {
119 return getUpdate(NetFlow.NAME);
122 public void setNetFlowUpdate(TableUpdate<NetFlow> netFlowUpdate) {
123 put(NetFlow.NAME, netFlowUpdate);
126 @JsonProperty("Open_vSwitch")
127 public TableUpdate<Open_vSwitch> getOpen_vSwitchUpdate() {
128 return getUpdate(Open_vSwitch.NAME);
131 public void setOpen_vSwitchUpdate(TableUpdate<Open_vSwitch> openVSwitchUpdate) {
132 put(Open_vSwitch.NAME, openVSwitchUpdate);
136 public TableUpdate<Qos> getQosUpdate() {
137 return getUpdate(Qos.NAME);
140 public void setQosUpdate(TableUpdate<Qos> qosUpdate) {
141 put(Qos.NAME, qosUpdate);
144 @JsonProperty("Queue")
145 public TableUpdate<Queue> getQueueUpdate() {
146 return getUpdate(Queue.NAME);
149 public void setQueueUpdate(TableUpdate<Queue> queueUpdate) {
150 put(Queue.NAME, queueUpdate);
153 @JsonProperty("sFlow")
154 public TableUpdate<SFlow> getSFlowUpdate() {
155 return getUpdate(SFlow.NAME);
158 public void setSFlowUpdate(TableUpdate<SFlow> sFlowUpdate) {
159 put(SFlow.NAME, sFlowUpdate);
163 public TableUpdate<SSL> getSSLUpdate() {
164 return getUpdate(SSL.NAME);
167 public void setSSLUpdate(TableUpdate<SSL> sslUpdate) {
168 put(SSL.NAME, sslUpdate);
171 @JsonProperty("Flow_Table")
172 public TableUpdate<Flow_Table> getFlow_TableUpdate() {
173 return getUpdate(Flow_Table.NAME);
176 public void setFlow_TableUpdate(TableUpdate<Flow_Table> Flow_TableUpdate) {
177 put(Flow_Table.NAME, Flow_TableUpdate);
180 @JsonProperty("Flow_Sample_Collector_Set")
181 public TableUpdate<Flow_Sample_Collector_Set> getFlow_Sample_Collector_SetUpdate() {
182 return getUpdate(Flow_Sample_Collector_Set.NAME);
185 public void setFlow_Sample_Collector_SetUpdate(TableUpdate<Flow_Sample_Collector_Set> Flow_Sample_Collector_SetUpdate) {
186 put(Flow_Sample_Collector_Set.NAME, Flow_Sample_Collector_SetUpdate);
189 @JsonProperty("IPFIX")
190 public TableUpdate<IPFIX> getIPFIXUpdate() {
191 return getUpdate(IPFIX.NAME);
194 public void setIPFIXUpdate(TableUpdate<IPFIX> IPFIXUpdate) {
195 put(IPFIX.NAME, IPFIXUpdate);