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