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() {
70 if (adminStateUp == null) {
73 if (autoAggregate == null) {
74 autoAggregate = false;
78 public boolean isAdminStateUp() {
82 public boolean isAutoAggregate() {
86 public String getType() {
90 public void setType(String type) {
94 public String getTechnique() {
98 public void setTechnique(String technique) {
99 this.technique = technique;
102 public List<String> getRouteTargets() {
106 public void setRouteTargets(List<String> routeTargets) {
107 this.routeTargets = routeTargets;
110 public void addRouteTarget(String uuid) {
111 routeTargets.add(uuid);
114 public void removeRouteTarget(String uuid) {
115 routeTargets.remove(uuid);
118 public List<String> getImportTargets() {
119 return importTargets;
122 public void setImportTargets(List<String> importTargets) {
123 this.importTargets = importTargets;
126 public void addImportTarget(String uuid) {
127 importTargets.add(uuid);
130 public void removeImportTarget(String uuid) {
131 importTargets.remove(uuid);
134 public List<String> getExportTargets() {
135 return exportTargets;
138 public void setExportTargets(List<String> exportTargets) {
139 this.exportTargets = exportTargets;
142 public void addExportTarget(String uuid) {
143 exportTargets.add(uuid);
146 public void removeExportTarget(String uuid) {
147 exportTargets.remove(uuid);
150 public List<String> getRouteDistinguishers() {
151 return routeDistinguishers;
154 public void setRouteDistinguishers(List<String> routeDistinguishers) {
155 this.routeDistinguishers = routeDistinguishers;
158 public void addRouteDistinguisher(String uuid) {
159 routeDistinguishers.add(uuid);
162 public void removeRouteDistinguisher(String uuid) {
163 routeDistinguishers.remove(uuid);
166 public Long getVnid() {
170 public void setVnid(Long input) {
174 public Boolean getAutoAggregate() {
175 return autoAggregate;
178 public void setAutoAggregate(boolean newValue) {
179 autoAggregate = newValue;
182 public List<String> getNetworks() {
186 public void setNetworks(List<String> networks) {
187 this.networks = networks;
190 public void addNetwork(String uuid) {
194 public void removeNetwork(String uuid) {
195 networks.remove(uuid);
198 public List<String> getRouters() {
202 public void setRouters(List<String> routers) {
203 this.routers = routers;
206 public void addRouter(String uuid) {
210 public void removeRouter(String uuid) {
211 routers.remove(uuid);
215 * This method copies selected fields from the object and returns them
216 * as a new object, suitable for marshaling.
219 * List of attributes to be extracted
220 * @return an OpenStackNetworks object with only the selected fields
224 public NeutronBgpvpn extractFields(List<String> fields) {
225 NeutronBgpvpn ans = new NeutronBgpvpn();
226 for (String s : fields) {
227 extractField(s, ans);
228 if (s.equals("type")) {
229 ans.setType(this.getType());
231 if (s.equals("technique")) {
232 ans.setTechnique(this.getTechnique());
234 if (s.equals("route_targets")) {
235 ans.setRouteTargets(this.getRouteTargets());
237 if (s.equals("import_targets")) {
238 ans.setImportTargets(this.getImportTargets());
240 if (s.equals("export_targets")) {
241 ans.setExportTargets(this.getExportTargets());
243 if (s.equals("route_distinguishers")) {
244 ans.setRouteDistinguishers(this.getRouteDistinguishers());
246 if (s.equals("routers")) {
247 ans.setRouters(this.getRouters());
249 if (s.equals("networks")) {
250 ans.setNetworks(this.getNetworks());
252 if (s.equals("vnid")) {
253 ans.setVnid(this.getVnid());
255 if (s.equals("auto_aggregate")) {
256 ans.setAutoAggregate(this.getAutoAggregate());
263 public String toString() {
264 return "NeutronBgpvpn [bgpvpnUUID=" + uuid + ", bgpvpnName=" + name + ", adminStateUp=" + adminStateUp
265 + ", status=" + status + ", tenantID=" + tenantID + ", type=" + type + ", technique=" + technique
266 + ", routeTargets=" + routeTargets + ", importTargets=" + importTargets + ", exportTargets="
267 + exportTargets + ", routeDistinguishers=" + routeDistinguishers + ", vnid = " + vnid
268 + ", autoAggregate = " + autoAggregate + ", networks = " + networks + ", routers = " + routers + "]";