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.List;
13 import javax.xml.bind.annotation.XmlAccessType;
14 import javax.xml.bind.annotation.XmlAccessorType;
15 import javax.xml.bind.annotation.XmlElement;
16 import javax.xml.bind.annotation.XmlRootElement;
18 @XmlRootElement(name = "bgpvpn")
19 @XmlAccessorType(XmlAccessType.NONE)
20 public final class NeutronBgpvpn extends NeutronAdminAttributes<NeutronBgpvpn> implements Serializable {
21 // See OpenStack Network API v2.0 Reference for description of
22 // annotated attributes
24 private static final long serialVersionUID = 1L;
26 @XmlElement(defaultValue = "l3", name = "type")
29 @XmlElement(name = "technique")
32 @XmlElement(name = "route_targets")
33 List<String> routeTargets;
35 @XmlElement(name = "import_targets")
36 List<String> importTargets;
38 @XmlElement(name = "export_targets")
39 List<String> exportTargets;
41 @XmlElement(name = "route_distinguishers")
42 List<String> routeDistinguishers;
44 @XmlElement(name = "vnid")
47 @XmlElement(defaultValue = "false", name = "auto_aggregate")
48 Boolean autoAggregate;
50 @XmlElement(name = "networks")
51 List<String> networks;
53 @XmlElement(name = "routers")
56 /* This attribute lists the ports associated with an instance
57 * which is needed for determining if that instance can be deleted
60 public NeutronBgpvpn() {
63 public void initDefaults() {
68 if (autoAggregate == null) {
69 autoAggregate = false;
73 public boolean isAdminStateUp() {
77 public boolean isAutoAggregate() {
81 public String getType() {
85 public void setType(String type) {
89 public String getTechnique() {
93 public void setTechnique(String technique) {
94 this.technique = technique;
97 public List<String> getRouteTargets() {
101 public void setRouteTargets(List<String> routeTargets) {
102 this.routeTargets = routeTargets;
105 public void addRouteTarget(String uuid) {
106 routeTargets.add(uuid);
109 public void removeRouteTarget(String uuid) {
110 routeTargets.remove(uuid);
113 public List<String> getImportTargets() {
114 return importTargets;
117 public void setImportTargets(List<String> importTargets) {
118 this.importTargets = importTargets;
121 public void addImportTarget(String uuid) {
122 importTargets.add(uuid);
125 public void removeImportTarget(String uuid) {
126 importTargets.remove(uuid);
129 public List<String> getExportTargets() {
130 return exportTargets;
133 public void setExportTargets(List<String> exportTargets) {
134 this.exportTargets = exportTargets;
137 public void addExportTarget(String uuid) {
138 exportTargets.add(uuid);
141 public void removeExportTarget(String uuid) {
142 exportTargets.remove(uuid);
145 public List<String> getRouteDistinguishers() {
146 return routeDistinguishers;
149 public void setRouteDistinguishers(List<String> routeDistinguishers) {
150 this.routeDistinguishers = routeDistinguishers;
153 public void addRouteDistinguisher(String uuid) {
154 routeDistinguishers.add(uuid);
157 public void removeRouteDistinguisher(String uuid) {
158 routeDistinguishers.remove(uuid);
161 public Long getVnid() {
165 public void setVnid(Long input) {
169 public Boolean getAutoAggregate() {
170 return autoAggregate;
173 public void setAutoAggregate(boolean newValue) {
174 autoAggregate = newValue;
177 public List<String> getNetworks() {
181 public void setNetworks(List<String> networks) {
182 this.networks = networks;
185 public void addNetwork(String uuid) {
189 public void removeNetwork(String uuid) {
190 networks.remove(uuid);
193 public List<String> getRouters() {
197 public void setRouters(List<String> routers) {
198 this.routers = routers;
201 public void addRouter(String uuid) {
205 public void removeRouter(String uuid) {
206 routers.remove(uuid);
210 protected boolean extractField(String field, NeutronBgpvpn ans) {
213 ans.setType(this.getType());
216 ans.setTechnique(this.getTechnique());
218 case "route_targets":
219 ans.setRouteTargets(this.getRouteTargets());
221 case "import_targets":
222 ans.setImportTargets(this.getImportTargets());
224 case "export_targets":
225 ans.setExportTargets(this.getExportTargets());
227 case "route_distinguishe":
228 ans.setRouteDistinguishers(this.getRouteDistinguishers());
231 ans.setRouters(this.getRouters());
234 ans.setNetworks(this.getNetworks());
237 ans.setVnid(this.getVnid());
239 case "auto_aggregate":
240 ans.setAutoAggregate(this.getAutoAggregate());
243 return super.extractField(field, ans);
249 public String toString() {
250 return "NeutronBgpvpn [bgpvpnUUID=" + uuid + ", bgpvpnName=" + name + ", adminStateUp=" + adminStateUp
251 + ", status=" + status + ", tenantID=" + tenantID + ", type=" + type + ", technique=" + technique
252 + ", routeTargets=" + routeTargets + ", importTargets=" + importTargets + ", exportTargets="
253 + exportTargets + ", routeDistinguishers=" + routeDistinguishers + ", vnid = " + vnid
254 + ", autoAggregate = " + autoAggregate + ", networks = " + networks + ", routers = " + routers + "]";