checkstyle: TypeName
[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         if (status == null) {
67             status = "ACTIVE";
68         }
69         if (adminStateUp == null) {
70             adminStateUp = true;
71         }
72         if (shared == null) {
73             shared = false;
74         }
75         if (routerExternal == null) {
76             routerExternal = false;
77         }
78         if (providerNetworkType == null) {
79             providerNetworkType = "flat";
80         }
81     }
82
83     public boolean isAdminStateUp() {
84         return adminStateUp;
85     }
86
87     public boolean isShared() {
88         return shared;
89     }
90
91     public Boolean getShared() {
92         return shared;
93     }
94
95     public void setShared(boolean newValue) {
96         shared = newValue;
97     }
98
99     public boolean isRouterExternal() {
100         return routerExternal;
101     }
102
103     public Boolean getRouterExternal() {
104         return routerExternal;
105     }
106
107     public void setRouterExternal(boolean newValue) {
108         routerExternal = newValue;
109     }
110
111     public String getProviderNetworkType() {
112         return providerNetworkType;
113     }
114
115     public void setProviderNetworkType(String providerNetworkType) {
116         this.providerNetworkType = providerNetworkType;
117     }
118
119     public String getProviderPhysicalNetwork() {
120         return providerPhysicalNetwork;
121     }
122
123     public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
124         this.providerPhysicalNetwork = providerPhysicalNetwork;
125     }
126
127     public String getProviderSegmentationID() {
128         return providerSegmentationID;
129     }
130
131     public void setProviderSegmentationID(String providerSegmentationID) {
132         this.providerSegmentationID = providerSegmentationID;
133     }
134
135     public void setSegments(List<NeutronNetworkSegment> segments) {
136         this.segments = segments;
137     }
138
139     public List<NeutronNetworkSegment> getSegments() {
140         return segments;
141     }
142
143     public Boolean getVlanTransparent() {
144         return vlanTransparent;
145     }
146
147     public void setVlanTransparent(Boolean input) {
148         this.vlanTransparent = input;
149     }
150
151     public Integer getMtu() {
152         return mtu;
153     }
154
155     public void setMtu(Integer input) {
156         mtu = input;
157     }
158
159     public String getQosPolicyId() {
160         return qosPolicyId;
161     }
162
163     public void setQosPolicyId(String qosPolicyId) {
164         this.qosPolicyId = qosPolicyId;
165     }
166
167     /**
168      * This method copies selected fields from the object and returns them
169      * as a new object, suitable for marshaling.
170      *
171      * @param fields
172      *            List of attributes to be extracted
173      * @return an OpenStackNetworks object with only the selected fields
174      *             populated
175      */
176
177     public NeutronNetwork extractFields(List<String> fields) {
178         NeutronNetwork ans = new NeutronNetwork();
179         for (String s : fields) {
180             extractField(s, ans);
181             if (s.equals("shared")) {
182                 ans.setShared(shared);
183             }
184             if (s.equals("external")) {
185                 ans.setRouterExternal(this.getRouterExternal());
186             }
187             if (s.equals("segmentation_id")) {
188                 ans.setProviderSegmentationID(this.getProviderSegmentationID());
189             }
190             if (s.equals("physical_network")) {
191                 ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
192             }
193             if (s.equals("network_type")) {
194                 ans.setProviderNetworkType(this.getProviderNetworkType());
195             }
196             if (s.equals("qos_policy_id")) {
197                 ans.setQosPolicyId(this.getQosPolicyId());
198             }
199
200         }
201         return ans;
202     }
203
204     @Override
205     public String toString() {
206         return "NeutronNetwork [networkUUID=" + uuid + ", networkName=" + name + ", adminStateUp=" + adminStateUp
207                 + ", shared=" + shared + ", tenantID=" + tenantID + ", routerExternal=" + routerExternal
208                 + ", providerNetworkType=" + providerNetworkType + ", providerPhysicalNetwork="
209                 + providerPhysicalNetwork + ", providerSegmentationID=" + providerSegmentationID + ", status=" + status
210                 + ", qosPolicyId =" + qosPolicyId + ", segments = " + segments + "]";
211     }
212 }