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