NEUTRON-162: vlan_transparent attribute is missing in network_attributes
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / NeutronNetwork.java
1 /*
2  * Copyright (c) 2013, 2015 IBM Corporation 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 edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
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;
17
18 @XmlRootElement(name = "network")
19 @XmlAccessorType(XmlAccessType.NONE)
20 // Non-transient non-serializable instance field 'segments' - we have to assume/hope users will set a Serializable List
21 // instance.
22 @SuppressFBWarnings("SE_BAD_FIELD")
23 public final class NeutronNetwork extends NeutronAdminAttributes<NeutronNetwork> {
24     // See OpenStack Network API v2.0 Reference for description of
25     // annotated attributes
26
27     private static final long serialVersionUID = 1L;
28
29     @XmlElement(defaultValue = "false", name = "shared")
30     Boolean shared;
31
32     //    @XmlElement (defaultValue = "false", name = "router:external")
33     @XmlElement(defaultValue = "false", namespace = "router", name = "external")
34     Boolean routerExternal;
35
36     //    @XmlElement (defaultValue = "flat", name = "provider:network_type")
37     @XmlElement(namespace = "provider", name = "network_type")
38     String providerNetworkType;
39
40     //    @XmlElement (name = "provider:physical_network")
41     @XmlElement(namespace = "provider", name = "physical_network")
42     String providerPhysicalNetwork;
43
44     //    @XmlElement (name = "provider:segmentation_id")
45     @XmlElement(namespace = "provider", name = "segmentation_id")
46     String providerSegmentationID;
47
48     @XmlElement(name = "segments")
49     List<NeutronNetworkSegment> segments;
50
51     @XmlElement(name = "vlan_transparent")
52     Boolean vlanTransparent;
53
54     @XmlElement(name = "mtu")
55     Integer mtu;
56
57     @XmlElement(name = "qos_policy_id")
58     String qosPolicyId;
59
60     /* This attribute lists the ports associated with an instance
61      * which is needed for determining if that instance can be deleted
62      */
63
64     public NeutronNetwork() {
65     }
66
67     @Override
68     public void initDefaults() {
69         super.initDefaults();
70         if (shared == null) {
71             shared = false;
72         }
73         if (routerExternal == null) {
74             routerExternal = false;
75         }
76         if (providerNetworkType == null) {
77             providerNetworkType = "flat";
78         }
79     }
80
81     public boolean isShared() {
82         if (shared == null) {
83             return false;
84         }
85
86         return shared;
87     }
88
89     public Boolean getShared() {
90         return shared;
91     }
92
93     public void setShared(boolean newValue) {
94         shared = newValue;
95     }
96
97     public boolean isRouterExternal() {
98         if (routerExternal == null) {
99             return false;
100         }
101
102         return routerExternal;
103     }
104
105     public Boolean getRouterExternal() {
106         return routerExternal;
107     }
108
109     public void setRouterExternal(boolean newValue) {
110         routerExternal = newValue;
111     }
112
113     public String getProviderNetworkType() {
114         return providerNetworkType;
115     }
116
117     public void setProviderNetworkType(String providerNetworkType) {
118         this.providerNetworkType = providerNetworkType;
119     }
120
121     public String getProviderPhysicalNetwork() {
122         return providerPhysicalNetwork;
123     }
124
125     public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
126         this.providerPhysicalNetwork = providerPhysicalNetwork;
127     }
128
129     public String getProviderSegmentationID() {
130         return providerSegmentationID;
131     }
132
133     public void setProviderSegmentationID(String providerSegmentationID) {
134         this.providerSegmentationID = providerSegmentationID;
135     }
136
137     public void setSegments(List<NeutronNetworkSegment> segments) {
138         this.segments = segments;
139     }
140
141     public List<NeutronNetworkSegment> getSegments() {
142         return segments;
143     }
144
145     public Boolean getVlanTransparent() {
146         return vlanTransparent;
147     }
148
149     public void setVlanTransparent(Boolean input) {
150         this.vlanTransparent = input;
151     }
152
153     public Integer getMtu() {
154         return mtu;
155     }
156
157     public void setMtu(Integer input) {
158         mtu = input;
159     }
160
161     public String getQosPolicyId() {
162         return qosPolicyId;
163     }
164
165     public void setQosPolicyId(String qosPolicyId) {
166         this.qosPolicyId = qosPolicyId;
167     }
168
169     @Override
170     public boolean extractField(String field, NeutronNetwork ans) {
171         switch (field) {
172             case "shared":
173                 ans.setShared(isShared());
174                 break;
175             case "vlan_transparent":
176                 ans.setVlanTransparent(this.getVlanTransparent());
177                 break;
178             case "external":
179                 ans.setRouterExternal(this.getRouterExternal());
180                 break;
181             case "segmentation_id":
182                 ans.setProviderSegmentationID(this.getProviderSegmentationID());
183                 break;
184             case "physical_network":
185                 ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
186                 break;
187             case "network_type":
188                 ans.setProviderNetworkType(this.getProviderNetworkType());
189                 break;
190             case "qos_policy_id":
191                 ans.setQosPolicyId(this.getQosPolicyId());
192                 break;
193             default:
194                 return super.extractField(field, ans);
195         }
196         return true;
197     }
198
199     @Override
200     public String toString() {
201         return "NeutronNetwork [networkUUID=" + uuid + ", networkName=" + name + ", adminStateUp=" + adminStateUp
202                 + ", shared=" + shared + ", vlanTransparent=" + vlanTransparent + ", tenantID=" + tenantID
203                 + ", routerExternal=" + routerExternal + ", providerNetworkType=" + providerNetworkType
204                 + ", providerPhysicalNetwork=" + providerPhysicalNetwork + ", providerSegmentationID="
205                 + providerSegmentationID + ", status=" + status + ", qosPolicyId =" + qosPolicyId
206                 + ", segments = " + segments + "]";
207     }
208 }