Merge "Bug 6641: Fix ip_address in allowed_address_pairs info"
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / NeutronBgpvpn.java
1 /*
2  * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
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
9 package org.opendaylight.neutron.spi;
10
11 import java.io.Serializable;
12 import java.util.Iterator;
13 import java.util.List;
14 import javax.xml.bind.annotation.XmlAccessType;
15 import javax.xml.bind.annotation.XmlAccessorType;
16 import javax.xml.bind.annotation.XmlElement;
17 import javax.xml.bind.annotation.XmlRootElement;
18
19 @XmlRootElement(name = "bgpvpn")
20 @XmlAccessorType(XmlAccessType.NONE)
21 public final class NeutronBgpvpn extends NeutronObject<NeutronBgpvpn>
22         implements Serializable, INeutronObject<NeutronBgpvpn> {
23     // See OpenStack Network API v2.0 Reference for description of
24     // annotated attributes
25
26     private static final long serialVersionUID = 1L;
27
28     @XmlElement(name = "name")
29     String bgpvpnName;
30
31     @XmlElement(defaultValue = "true", name = "admin_state_up")
32     Boolean adminStateUp;
33
34     @XmlElement(name = "status")
35     String status;
36
37     @XmlElement(defaultValue = "l3", name = "type")
38     String type;
39
40     @XmlElement(name = "technique")
41     String technique;
42
43     @XmlElement(name = "route_targets")
44     List<String> routeTargets;
45
46     @XmlElement(name = "import_targets")
47     List<String> importTargets;
48
49     @XmlElement(name = "export_targets")
50     List<String> exportTargets;
51
52     @XmlElement(name = "route_distinguishers")
53     List<String> routeDistinguishers;
54
55     @XmlElement(name = "vnid")
56     Long vnid;
57
58     @XmlElement(defaultValue = "false", name = "auto_aggregate")
59     Boolean autoAggregate;
60
61     @XmlElement(name = "networks")
62     List<String> networks;
63
64     @XmlElement(name = "routers")
65     List<String> routers;
66
67     /* This attribute lists the ports associated with an instance
68      * which is needed for determining if that instance can be deleted
69      */
70
71     public NeutronBgpvpn() {
72     }
73
74     public void initDefaults() {
75         if (type == null) {
76             type = "l3";
77         }
78         if (status == null) {
79             status = "ACTIVE";
80         }
81         if (adminStateUp == null) {
82             adminStateUp = true;
83         }
84         if (autoAggregate == null) {
85             autoAggregate = false;
86         }
87     }
88
89     public String getBgpvpnName() {
90         return bgpvpnName;
91     }
92
93     public void setBgpvpnName(String bgpvpnName) {
94         this.bgpvpnName = bgpvpnName;
95     }
96
97     public boolean isAdminStateUp() {
98         return adminStateUp;
99     }
100
101     public Boolean getAdminStateUp() {
102         return adminStateUp;
103     }
104
105     public void setAdminStateUp(boolean newValue) {
106         adminStateUp = newValue;
107     }
108
109     public String getStatus() {
110         return status;
111     }
112
113     public void setStatus(String status) {
114         this.status = status;
115     }
116
117     public boolean isAutoAggregate() {
118         return autoAggregate;
119     }
120
121     public String getType() {
122         return type;
123     }
124
125     public void setType(String type) {
126         this.type = type;
127     }
128
129     public String getTechnique() {
130         return technique;
131     }
132
133     public void setTechnique(String technique) {
134         this.technique = technique;
135     }
136
137     public List<String> getRouteTargets() {
138         return routeTargets;
139     }
140
141     public void setRouteTargets(List<String> routeTargets) {
142         this.routeTargets = routeTargets;
143     }
144
145     public void addRouteTarget(String uuid) {
146         routeTargets.add(uuid);
147     }
148
149     public void removeRouteTarget(String uuid) {
150         routeTargets.remove(uuid);
151     }
152
153     public List<String> getImportTargets() {
154         return importTargets;
155     }
156
157     public void setImportTargets(List<String> importTargets) {
158         this.importTargets = importTargets;
159     }
160
161     public void addImportTarget(String uuid) {
162         importTargets.add(uuid);
163     }
164
165     public void removeImportTarget(String uuid) {
166         importTargets.remove(uuid);
167     }
168
169     public List<String> getExportTargets() {
170         return exportTargets;
171     }
172
173     public void setExportTargets(List<String> exportTargets) {
174         this.exportTargets = exportTargets;
175     }
176
177     public void addExportTarget(String uuid) {
178         exportTargets.add(uuid);
179     }
180
181     public void removeExportTarget(String uuid) {
182         exportTargets.remove(uuid);
183     }
184
185     public List<String> getRouteDistinguishers() {
186         return routeDistinguishers;
187     }
188
189     public void setRouteDistinguishers(List<String> routeDistinguishers) {
190         this.routeDistinguishers = routeDistinguishers;
191     }
192
193     public void addRouteDistinguisher(String uuid) {
194         routeDistinguishers.add(uuid);
195     }
196
197     public void removeRouteDistinguisher(String uuid) {
198         routeDistinguishers.remove(uuid);
199     }
200
201     public Long getVnid() {
202         return vnid;
203     }
204
205     public void setVnid(Long input) {
206         vnid = input;
207     }
208
209     public Boolean getAutoAggregate() {
210         return autoAggregate;
211     }
212
213     public void setAutoAggregate(boolean newValue) {
214         autoAggregate = newValue;
215     }
216
217     public List<String> getNetworks() {
218         return networks;
219     }
220
221     public void setNetworks(List<String> networks) {
222         this.networks = networks;
223     }
224
225     public void addNetwork(String uuid) {
226         networks.add(uuid);
227     }
228
229     public void removeNetwork(String uuid) {
230         networks.remove(uuid);
231     }
232
233     public List<String> getRouters() {
234         return routers;
235     }
236
237     public void setRouters(List<String> routers) {
238         this.routers = routers;
239     }
240
241     public void addRouter(String uuid) {
242         routers.add(uuid);
243     }
244
245     public void removeRouter(String uuid) {
246         routers.remove(uuid);
247     }
248
249     /**
250      * This method copies selected fields from the object and returns them
251      * as a new object, suitable for marshaling.
252      *
253      * @param fields
254      *            List of attributes to be extracted
255      * @return an OpenStackNetworks object with only the selected fields
256      * populated
257      */
258
259     public NeutronBgpvpn extractFields(List<String> fields) {
260         NeutronBgpvpn ans = new NeutronBgpvpn();
261         Iterator<String> i = fields.iterator();
262         while (i.hasNext()) {
263             String s = i.next();
264             if (s.equals("id")) {
265                 ans.setID(this.getID());
266             }
267             if (s.equals("name")) {
268                 ans.setBgpvpnName(this.getBgpvpnName());
269             }
270             if (s.equals("admin_state_up")) {
271                 ans.setAdminStateUp(adminStateUp);
272             }
273             if (s.equals("status")) {
274                 ans.setStatus(this.getStatus());
275             }
276             if (s.equals("tenant_id")) {
277                 ans.setTenantID(this.getTenantID());
278             }
279             if (s.equals("type")) {
280                 ans.setType(this.getType());
281             }
282             if (s.equals("technique")) {
283                 ans.setTechnique(this.getTechnique());
284             }
285             if (s.equals("route_targets")) {
286                 ans.setRouteTargets(this.getRouteTargets());
287             }
288             if (s.equals("import_targets")) {
289                 ans.setImportTargets(this.getImportTargets());
290             }
291             if (s.equals("export_targets")) {
292                 ans.setExportTargets(this.getExportTargets());
293             }
294             if (s.equals("route_distinguishers")) {
295                 ans.setRouteDistinguishers(this.getRouteDistinguishers());
296             }
297             if (s.equals("routers")) {
298                 ans.setRouters(this.getRouters());
299             }
300             if (s.equals("networks")) {
301                 ans.setNetworks(this.getNetworks());
302             }
303             if (s.equals("vnid")) {
304                 ans.setVnid(this.getVnid());
305             }
306             if (s.equals("auto_aggregate")) {
307                 ans.setAutoAggregate(this.getAutoAggregate());
308             }
309         }
310         return ans;
311     }
312
313     @Override
314     public String toString() {
315         return "NeutronBgpvpn [bgpvpnUUID=" + uuid + ", bgpvpnName=" + bgpvpnName + ", adminStateUp=" + adminStateUp
316                 + ", status=" + status + ", tenantID=" + tenantID + ", type=" + type + ", technique=" + technique
317                 + ", routeTargets=" + routeTargets + ", importTargets=" + importTargets + ", exportTargets="
318                 + exportTargets + ", routeDistinguishers=" + routeDistinguishers + ", vnid = " + vnid
319                 + ", autoAggregate = " + autoAggregate + ", networks = " + networks + ", routers = " + routers + "]";
320     }
321 }