2 * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
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
9 package org.opendaylight.neutron.spi;
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;
19 @XmlRootElement(name = "bgpvpn")
20 @XmlAccessorType(XmlAccessType.NONE)
21 public class NeutronBgpvpn extends NeutronObject implements Serializable, INeutronObject {
22 // See OpenStack Network API v2.0 Reference for description of
23 // annotated attributes
25 private static final long serialVersionUID = 1L;
27 @XmlElement (name = "name")
30 @XmlElement (defaultValue = "true", name = "admin_state_up")
33 @XmlElement (name = "status")
36 @XmlElement (defaultValue = "l3", name = "type")
39 @XmlElement (name = "technique")
42 @XmlElement (name = "route_targets")
43 List<String> routeTargets;
45 @XmlElement (name = "import_targets")
46 List<String> importTargets;
48 @XmlElement (name = "export_targets")
49 List<String> exportTargets;
51 @XmlElement (name = "route_distinguishers")
52 List<String> routeDistinguishers;
54 @XmlElement (name="vnid")
57 @XmlElement (defaultValue="false", name="auto_aggregate")
58 Boolean autoAggregate;
60 @XmlElement (name = "networks")
61 List<String> networks;
63 @XmlElement (name = "routers")
66 /* This attribute lists the ports associated with an instance
67 * which is needed for determining if that instance can be deleted
70 public NeutronBgpvpn() {
73 public void initDefaults() {
80 if (adminStateUp == null) {
83 if (autoAggregate == null) {
84 autoAggregate = false;
88 public String getBgpvpnName() {
92 public void setBgpvpnName(String bgpvpnName) {
93 this.bgpvpnName = bgpvpnName;
96 public boolean isAdminStateUp() {
100 public Boolean getAdminStateUp() { return adminStateUp; }
102 public void setAdminStateUp(boolean newValue) {
103 adminStateUp = newValue;
106 public String getStatus() {
110 public void setStatus(String status) {
111 this.status = status;
114 public boolean isAutoAggregate() {
115 return autoAggregate;
118 public String getType() {
122 public void setType(String type) {
126 public String getTechnique() {
130 public void setTechnique(String technique) {
131 this.technique = technique;
134 public List<String> getRouteTargets() {
138 public void setRouteTargets(List<String> routeTargets) {
139 this.routeTargets= routeTargets;
142 public void addRouteTarget(String uuid) {
143 routeTargets.add(uuid);
146 public void removeRouteTarget(String uuid) {
147 routeTargets.remove(uuid);
150 public List<String> getImportTargets() {
151 return importTargets;
154 public void setImportTargets(List<String> importTargets) {
155 this.importTargets = importTargets;
158 public void addImportTarget(String uuid) {
159 importTargets.add(uuid);
162 public void removeImportTarget(String uuid) {
163 importTargets.remove(uuid);
166 public List<String> getExportTargets() {
167 return exportTargets;
170 public void setExportTargets(List<String> exportTargets) {
171 this.exportTargets = exportTargets;
174 public void addExportTarget(String uuid) {
175 exportTargets.add(uuid);
178 public void removeExportTarget(String uuid) {
179 exportTargets.remove(uuid);
182 public List<String> getRouteDistinguishers() {
183 return routeDistinguishers;
186 public void setRouteDistinguishers(List<String> routeDistinguishers) {
187 this.routeDistinguishers = routeDistinguishers;
190 public void addRouteDistinguisher(String uuid) {
191 routeDistinguishers.add(uuid);
194 public void removeRouteDistinguisher(String uuid) {
195 routeDistinguishers.remove(uuid);
198 public Long getVnid() {
202 public void setVnid(Long input) {
206 public Boolean getAutoAggregate() { return autoAggregate; }
208 public void setAutoAggregate(boolean newValue) {
209 autoAggregate = newValue;
212 public List<String> getNetworks() {
216 public void setNetworks(List<String> networks) {
217 this.networks = networks;
220 public void addNetwork(String uuid) {
224 public void removeNetwork(String uuid) {
225 networks.remove(uuid);
228 public List<String> getRouters() {
232 public void setRouters(List<String> routers) {
233 this.routers = routers;
236 public void addRouter(String uuid) {
240 public void removeRouter(String uuid) {
241 routers.remove(uuid);
245 * This method copies selected fields from the object and returns them
246 * as a new object, suitable for marshaling.
249 * List of attributes to be extracted
250 * @return an OpenStackNetworks object with only the selected fields
254 public NeutronBgpvpn extractFields(List<String> fields) {
255 NeutronBgpvpn ans = new NeutronBgpvpn();
256 Iterator<String> i = fields.iterator();
257 while (i.hasNext()) {
259 if (s.equals("id")) {
260 ans.setID(this.getID());
262 if (s.equals("name")) {
263 ans.setBgpvpnName(this.getBgpvpnName());
265 if (s.equals("admin_state_up")) {
266 ans.setAdminStateUp(adminStateUp);
268 if (s.equals("status")) {
269 ans.setStatus(this.getStatus());
271 if (s.equals("tenant_id")) {
272 ans.setTenantID(this.getTenantID());
274 if (s.equals("type")) {
275 ans.setType(this.getType());
277 if (s.equals("technique")) {
278 ans.setTechnique(this.getTechnique());
280 if (s.equals("route_targets")) {
281 ans.setRouteTargets(this.getRouteTargets());
283 if (s.equals("import_targets")) {
284 ans.setImportTargets(this.getImportTargets());
286 if (s.equals("export_targets")) {
287 ans.setExportTargets(this.getExportTargets());
289 if (s.equals("route_distinguishers")) {
290 ans.setRouteDistinguishers(this.getRouteDistinguishers());
292 if (s.equals("routers")) {
293 ans.setRouters(this.getRouters());
295 if (s.equals("networks")) {
296 ans.setNetworks(this.getNetworks());
298 if (s.equals("vnid")) {
299 ans.setVnid(this.getVnid());
301 if (s.equals("auto_aggregate")) {
302 ans.setAutoAggregate(this.getAutoAggregate());
309 public String toString() {
310 return "NeutronBgpvpn [bgpvpnUUID=" + uuid + ", bgpvpnName=" + bgpvpnName + ", adminStateUp="
311 + adminStateUp + ", status=" + status + ", tenantID=" + tenantID + ", type=" + type
312 + ", technique=" + technique + ", routeTargets="
313 + routeTargets + ", importTargets=" + importTargets + ", exportTargets=" + exportTargets
314 + ", routeDistinguishers=" + routeDistinguishers + ", vnid = " + vnid
315 + ", autoAggregate = " + autoAggregate + ", networks = " + networks
316 + ", routers = " + routers + "]";