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.util.List;
12 import javax.xml.bind.annotation.XmlAccessType;
13 import javax.xml.bind.annotation.XmlAccessorType;
14 import javax.xml.bind.annotation.XmlElement;
15 import javax.xml.bind.annotation.XmlRootElement;
17 @XmlRootElement(name = "bgpvpn")
18 @XmlAccessorType(XmlAccessType.NONE)
19 public final class NeutronBgpvpn extends NeutronAdminAttributes<NeutronBgpvpn> {
20 // See OpenStack Network API v2.0 Reference for description of
21 // annotated attributes
23 private static final long serialVersionUID = 1L;
25 @XmlElement(defaultValue = "l3", name = "type")
28 @XmlElement(name = "technique")
31 @XmlElement(name = "route_targets")
32 List<String> routeTargets;
34 @XmlElement(name = "import_targets")
35 List<String> importTargets;
37 @XmlElement(name = "export_targets")
38 List<String> exportTargets;
40 @XmlElement(name = "route_distinguishers")
41 List<String> routeDistinguishers;
43 @XmlElement(name = "vnid")
46 @XmlElement(defaultValue = "false", name = "auto_aggregate")
47 Boolean autoAggregate;
49 @XmlElement(name = "networks")
50 List<String> networks;
52 @XmlElement(name = "routers")
55 /* This attribute lists the ports associated with an instance
56 * which is needed for determining if that instance can be deleted
59 public NeutronBgpvpn() {
63 public void initDefaults() {
68 if (autoAggregate == null) {
69 autoAggregate = false;
73 public boolean isAutoAggregate() {
77 public String getType() {
81 public void setType(String type) {
85 public String getTechnique() {
89 public void setTechnique(String technique) {
90 this.technique = technique;
93 public List<String> getRouteTargets() {
97 public void setRouteTargets(List<String> routeTargets) {
98 this.routeTargets = routeTargets;
101 public void addRouteTarget(String uuid) {
102 routeTargets.add(uuid);
105 public void removeRouteTarget(String uuid) {
106 routeTargets.remove(uuid);
109 public List<String> getImportTargets() {
110 return importTargets;
113 public void setImportTargets(List<String> importTargets) {
114 this.importTargets = importTargets;
117 public void addImportTarget(String uuid) {
118 importTargets.add(uuid);
121 public void removeImportTarget(String uuid) {
122 importTargets.remove(uuid);
125 public List<String> getExportTargets() {
126 return exportTargets;
129 public void setExportTargets(List<String> exportTargets) {
130 this.exportTargets = exportTargets;
133 public void addExportTarget(String uuid) {
134 exportTargets.add(uuid);
137 public void removeExportTarget(String uuid) {
138 exportTargets.remove(uuid);
141 public List<String> getRouteDistinguishers() {
142 return routeDistinguishers;
145 public void setRouteDistinguishers(List<String> routeDistinguishers) {
146 this.routeDistinguishers = routeDistinguishers;
149 public void addRouteDistinguisher(String uuid) {
150 routeDistinguishers.add(uuid);
153 public void removeRouteDistinguisher(String uuid) {
154 routeDistinguishers.remove(uuid);
157 public Long getVnid() {
161 public void setVnid(Long input) {
165 public Boolean getAutoAggregate() {
166 return autoAggregate;
169 public void setAutoAggregate(boolean newValue) {
170 autoAggregate = newValue;
173 public List<String> getNetworks() {
177 public void setNetworks(List<String> networks) {
178 this.networks = networks;
181 public void addNetwork(String uuid) {
185 public void removeNetwork(String uuid) {
186 networks.remove(uuid);
189 public List<String> getRouters() {
193 public void setRouters(List<String> routers) {
194 this.routers = routers;
197 public void addRouter(String uuid) {
201 public void removeRouter(String uuid) {
202 routers.remove(uuid);
206 protected boolean extractField(String field, NeutronBgpvpn ans) {
209 ans.setType(this.getType());
212 ans.setTechnique(this.getTechnique());
214 case "route_targets":
215 ans.setRouteTargets(this.getRouteTargets());
217 case "import_targets":
218 ans.setImportTargets(this.getImportTargets());
220 case "export_targets":
221 ans.setExportTargets(this.getExportTargets());
223 case "route_distinguishe":
224 ans.setRouteDistinguishers(this.getRouteDistinguishers());
227 ans.setRouters(this.getRouters());
230 ans.setNetworks(this.getNetworks());
233 ans.setVnid(this.getVnid());
235 case "auto_aggregate":
236 ans.setAutoAggregate(this.getAutoAggregate());
239 return super.extractField(field, ans);
245 public String toString() {
246 return "NeutronBgpvpn [bgpvpnUUID=" + uuid + ", bgpvpnName=" + name + ", adminStateUp=" + adminStateUp
247 + ", status=" + status + ", tenantID=" + tenantID + ", type=" + type + ", technique=" + technique
248 + ", routeTargets=" + routeTargets + ", importTargets=" + importTargets + ", exportTargets="
249 + exportTargets + ", routeDistinguishers=" + routeDistinguishers + ", vnid = " + vnid
250 + ", autoAggregate = " + autoAggregate + ", networks = " + networks + ", routers = " + routers + "]";