f484102c00a3960bfa52f57079da7a57f5eab587
[ovsdb.git] / ovsdb / src / main / java / org / opendaylight / ovsdb / lib / message / TableUpdates.java
1 /*
2  * Copyright (C) 2013 EBay Software Foundation
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  * Authors : Ashwin Raveendran, Madhu Venugopal
9  */
10 package org.opendaylight.ovsdb.lib.message;
11
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;
31
32 import java.util.Map;
33 import java.util.Set;
34
35
36 public class TableUpdates extends Response {
37
38     Map<Table.Name, TableUpdate> map = Maps.newHashMap();
39
40     public Set<Table.Name> availableUpdates() {
41         return map.keySet();
42     }
43
44     @SuppressWarnings("unchecked")
45     public <T extends Table> TableUpdate<T> getUpdate(Table.Name<T> name) {
46         return map.get(name);
47     }
48
49     private <T extends Table> void put(Table.Name<T> name, TableUpdate<T> update) {
50         map.put(name, update);
51     }
52
53     @JsonProperty("Interface")
54     public TableUpdate<Interface> getInterfaceUpdate() {
55         return getUpdate(Interface.NAME);
56     }
57
58     public void setInterfaceUpdate(TableUpdate<Interface> interfaceUpdate) {
59         put(Interface.NAME, interfaceUpdate);
60     }
61
62     @JsonProperty("Bridge")
63     TableUpdate<Bridge> getBridgeUpdate() {
64         return getUpdate(Bridge.NAME);
65     }
66
67     public void setBridgeUpdate(TableUpdate<Bridge> bridgeUpdate) {
68         put(Bridge.NAME, bridgeUpdate);
69     }
70
71     @JsonProperty("Port")
72     TableUpdate<Port> getPortUpdate() {
73         return getUpdate(Port.NAME);
74     }
75
76     void setPortUpdate(TableUpdate<Port> portUpdate) {
77         put(Port.NAME, portUpdate);
78     }
79
80     @JsonProperty("Capability")
81     public TableUpdate<Capability> getCapabilityUpdate() {
82         return getUpdate(Capability.NAME);
83     }
84
85     public void setCapabilityUpdate(TableUpdate<Capability> capabilityUpdate) {
86         put(Capability.NAME, capabilityUpdate);
87     }
88
89     @JsonProperty("Controller")
90     public TableUpdate<Controller> getControllerUpdate() {
91         return getUpdate(Controller.NAME);
92     }
93
94     public void setControllerUpdate(TableUpdate<Controller> controllerUpdate) {
95         put(Controller.NAME, controllerUpdate);
96     }
97
98     @JsonProperty("Manager")
99     public TableUpdate<Manager> getManagerUpdate() {
100         return getUpdate(Manager.NAME);
101     }
102
103     public void setManagerUpdate(TableUpdate<Manager> managerUpdate) {
104         put(Manager.NAME, managerUpdate);
105     }
106
107     @JsonProperty("Mirror")
108     public TableUpdate<Mirror> getMirrorUpdate() {
109         return getUpdate(Mirror.NAME);
110     }
111
112     public void setMirrorUpdate(TableUpdate<Mirror> mirrorUpdate) {
113         put(Mirror.NAME, mirrorUpdate);
114     }
115
116     @JsonProperty("NetFlow")
117     public TableUpdate<NetFlow> getNetFlowUpdate() {
118         return getUpdate(NetFlow.NAME);
119     }
120
121     public void setNetFlowUpdate(TableUpdate<NetFlow> netFlowUpdate) {
122         put(NetFlow.NAME, netFlowUpdate);
123     }
124
125     @JsonProperty("Open_vSwitch")
126     public TableUpdate<Open_vSwitch> getOpen_vSwitchUpdate() {
127         return getUpdate(Open_vSwitch.NAME);
128     }
129
130     public void setOpen_vSwitchUpdate(TableUpdate<Open_vSwitch> openVSwitchUpdate) {
131         put(Open_vSwitch.NAME, openVSwitchUpdate);
132     }
133
134     @JsonProperty("QoS")
135     public TableUpdate<Qos> getQosUpdate() {
136         return getUpdate(Qos.NAME);
137     }
138
139     public void setQosUpdate(TableUpdate<Qos> qosUpdate) {
140         put(Qos.NAME, qosUpdate);
141     }
142
143     @JsonProperty("Queue")
144     public TableUpdate<Queue> getQueueUpdate() {
145         return getUpdate(Queue.NAME);
146     }
147
148     public void setQueueUpdate(TableUpdate<Queue> queueUpdate) {
149         put(Queue.NAME, queueUpdate);
150     }
151
152     @JsonProperty("sFlow")
153     public TableUpdate<SFlow> getSFlowUpdate() {
154         return getUpdate(SFlow.NAME);
155     }
156
157     public void setSFlowUpdate(TableUpdate<SFlow> sFlowUpdate) {
158         put(SFlow.NAME, sFlowUpdate);
159     }
160
161     @JsonProperty("SSL")
162     public TableUpdate<SSL> getSSLUpdate() {
163         return getUpdate(SSL.NAME);
164     }
165
166     public void setSSLUpdate(TableUpdate<SSL> sslUpdate) {
167         put(SSL.NAME, sslUpdate);
168     }
169
170     @JsonProperty("Flow_Table")
171     public TableUpdate<Flow_Table> getFlow_TableUpdate() {
172         return getUpdate(Flow_Table.NAME);
173     }
174
175     public void setFlow_TableUpdate(TableUpdate<Flow_Table> Flow_TableUpdate) {
176         put(Flow_Table.NAME, Flow_TableUpdate);
177     }
178
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);
182     }
183
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);
186     }
187
188     @JsonProperty("IPFIX")
189     public TableUpdate<IPFIX> getIPFIXUpdate() {
190         return getUpdate(IPFIX.NAME);
191     }
192
193     public void setIPFIXUpdate(TableUpdate<IPFIX> IPFIXUpdate) {
194         put(IPFIX.NAME, IPFIXUpdate);
195     }
196 }