Fixes Bug 5187
[ovsdb.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / translator / 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.ovsdb.openstack.netvirt.translator;
10
11 import java.io.Serializable;
12 import java.util.ArrayList;
13 import java.util.List;
14
15 import javax.xml.bind.annotation.XmlAccessType;
16 import javax.xml.bind.annotation.XmlAccessorType;
17 import javax.xml.bind.annotation.XmlElement;
18 import javax.xml.bind.annotation.XmlRootElement;
19
20 @XmlRootElement(name = "network")
21 @XmlAccessorType(XmlAccessType.NONE)
22
23 public class NeutronNetwork implements Serializable, INeutronObject {
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 (name = "id")
30     String networkUUID;
31
32     @XmlElement (name = "name")
33     String networkName;
34
35     @XmlElement (defaultValue = "true", name = "admin_state_up")
36     Boolean adminStateUp;
37
38     @XmlElement (defaultValue = "false", name = "shared")
39     Boolean shared;
40
41     @XmlElement (name = "tenant_id")
42     String tenantID;
43
44     //    @XmlElement (defaultValue = "false", name = "router:external")
45     @XmlElement (defaultValue="false", namespace="router", name="external")
46     Boolean routerExternal;
47
48     //    @XmlElement (defaultValue = "flat", name = "provider:network_type")
49     @XmlElement (namespace="provider", name="network_type")
50     String providerNetworkType;
51
52     //    @XmlElement (name = "provider:physical_network")
53     @XmlElement (namespace="provider", name="physical_network")
54     String providerPhysicalNetwork;
55
56     //    @XmlElement (name = "provider:segmentation_id")
57     @XmlElement (namespace="provider", name="segmentation_id")
58     String providerSegmentationID;
59
60     @XmlElement (name = "status")
61     String status;
62
63     @XmlElement (name="segments")
64     List<NeutronNetwork_Segment> segments;
65
66     @XmlElement (name="vlan_transparent")
67     Boolean vlanTransparent;
68
69     @XmlElement (name="mtu")
70     Integer mtu;
71
72     /* This attribute lists the ports associated with an instance
73      * which is needed for determining if that instance can be deleted
74      */
75
76     public NeutronNetwork() {
77     }
78
79     public void initDefaults() {
80         if (status == null) {
81             status = "ACTIVE";
82         }
83         if (adminStateUp == null) {
84             adminStateUp = true;
85         }
86         if (shared == null) {
87             shared = false;
88         }
89         if (routerExternal == null) {
90             routerExternal = false;
91         }
92         if (providerNetworkType == null) {
93             providerNetworkType = "flat";
94         }
95     }
96
97     public String getID() { return networkUUID; }
98
99     public void setID(String id) { this.networkUUID = id; }
100
101     public String getNetworkUUID() {
102         return networkUUID;
103     }
104
105     public void setNetworkUUID(String networkUUID) {
106         this.networkUUID = networkUUID;
107     }
108
109     public String getNetworkName() {
110         return networkName;
111     }
112
113     public void setNetworkName(String networkName) {
114         this.networkName = networkName;
115     }
116
117     public boolean isAdminStateUp() {
118         return adminStateUp;
119     }
120
121     public Boolean getAdminStateUp() { return adminStateUp; }
122
123     public void setAdminStateUp(boolean newValue) {
124         adminStateUp = newValue;
125     }
126
127     public boolean isShared() { return shared; }
128
129     public Boolean getShared() { return shared; }
130
131     public void setShared(boolean newValue) {
132         shared = newValue;
133     }
134
135     public String getTenantID() {
136         return tenantID;
137     }
138
139     public void setTenantID(String tenantID) {
140         this.tenantID = tenantID;
141     }
142
143     public boolean isRouterExternal() { return routerExternal; }
144
145     public Boolean getRouterExternal() { return routerExternal; }
146
147     public void setRouterExternal(boolean newValue) {
148         routerExternal = newValue;
149     }
150
151     public String getProviderNetworkType() {
152         return providerNetworkType;
153     }
154
155     public void setProviderNetworkType(String providerNetworkType) {
156         this.providerNetworkType = providerNetworkType;
157     }
158
159     public String getProviderPhysicalNetwork() {
160         return providerPhysicalNetwork;
161     }
162
163     public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
164         this.providerPhysicalNetwork = providerPhysicalNetwork;
165     }
166
167     public String getProviderSegmentationID() {
168         return providerSegmentationID;
169     }
170
171     public void setProviderSegmentationID(String providerSegmentationID) {
172         this.providerSegmentationID = providerSegmentationID;
173     }
174
175     public String getStatus() {
176         return status;
177     }
178
179     public void setStatus(String status) {
180         this.status = status;
181     }
182
183     public void setSegments(List<NeutronNetwork_Segment> segments) {
184         this.segments = segments;
185     }
186
187     public List<NeutronNetwork_Segment> getSegments() {
188         return segments;
189     }
190
191     public Boolean getVlanTransparent() {
192         return vlanTransparent;
193     }
194
195     public void setVlanTransparent(Boolean input) {
196         this.vlanTransparent = input;
197     }
198
199     public Integer getMtu() {
200         return mtu;
201     }
202
203     public void setMtu(Integer input) {
204         mtu = input;
205     }
206
207     /**
208      * This method copies selected fields from the object and returns them
209      * as a new object, suitable for marshaling.
210      *
211      * @param fields
212      *            List of attributes to be extracted
213      * @return an OpenStackNetworks object with only the selected fields
214      * populated
215      */
216
217     public NeutronNetwork extractFields(List<String> fields) {
218         NeutronNetwork ans = new NeutronNetwork();
219         for (String s : fields) {
220             switch (s) {
221                 case "id":
222                     ans.setNetworkUUID(this.getNetworkUUID());
223                     break;
224                 case "name":
225                     ans.setNetworkName(this.getNetworkName());
226                     break;
227                 case "admin_state_up":
228                     ans.setAdminStateUp(adminStateUp);
229                     break;
230                 case "status":
231                     ans.setStatus(this.getStatus());
232                     break;
233                 case "shared":
234                     ans.setShared(shared);
235                     break;
236                 case "tenant_id":
237                     ans.setTenantID(this.getTenantID());
238                     break;
239                 case "external":
240                     ans.setRouterExternal(this.getRouterExternal());
241                     break;
242                 case "segmentation_id":
243                     ans.setProviderSegmentationID(this.getProviderSegmentationID());
244                     break;
245                 case "physical_network":
246                     ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
247                     break;
248                 case "network_type":
249                     ans.setProviderNetworkType(this.getProviderNetworkType());
250                     break;
251             }
252         }
253         return ans;
254     }
255
256     @Override
257     public String toString() {
258         return "NeutronNetwork [networkUUID=" + networkUUID + ", networkName=" + networkName + ", adminStateUp="
259                 + adminStateUp + ", shared=" + shared + ", tenantID=" + tenantID + ", routerExternal=" + routerExternal
260                 + ", providerNetworkType=" + providerNetworkType + ", providerPhysicalNetwork="
261                 + providerPhysicalNetwork + ", providerSegmentationID=" + providerSegmentationID + ", status=" + status
262                 + ", segments = " + segments + "]";
263     }
264 }
265