add -Xlint:unchecked and -Xlint:deprecation to compiler argument
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / NeutronLoadBalancerPool.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc.  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 javax.xml.bind.annotation.XmlAccessType;
12 import javax.xml.bind.annotation.XmlAccessorType;
13 import javax.xml.bind.annotation.XmlElement;
14 import javax.xml.bind.annotation.XmlRootElement;
15 import java.io.Serializable;
16 import java.util.ArrayList;
17 import java.util.List;
18
19 /**
20  * OpenStack Neutron v2.0 Load Balancer as a service
21  * (LBaaS) bindings. See OpenStack Network API
22  * v2.0 Reference for description of  the fields:
23  * Implemented fields are as follows:
24  *
25  * id                 uuid-str
26  * tenant_id          uuid-str
27  * name               String
28  * protocol           String
29  * lb_algorithm       String
30  * healthmonitor_id   String
31  * admin_state_up     Bool
32  * status             String
33  * members            List <NeutronLoadBalancerPoolMember>
34  * http://docs.openstack.org/api/openstack-network/2.0/openstack-network.pdf
35  */
36
37 @XmlRootElement
38 @XmlAccessorType(XmlAccessType.NONE)
39
40 public class NeutronLoadBalancerPool extends NeutronObject implements Serializable, INeutronObject {
41     private static final long serialVersionUID = 1L;
42
43     @XmlElement (name = "name")
44     String loadBalancerPoolName;
45
46     @XmlElement (name = "protocol")
47     String loadBalancerPoolProtocol;
48
49     @XmlElement (name = "lb_algorithm")
50     String loadBalancerPoolLbAlgorithm;
51
52     @XmlElement (name = "healthmonitor_id")
53     String neutronLoadBalancerPoolHealthMonitorID;
54
55     @XmlElement (defaultValue = "true", name = "admin_state_up")
56     Boolean loadBalancerPoolAdminStateIsUp;
57
58     @XmlElement(name = "listeners")
59     List<Neutron_ID> loadBalancerPoolListeners;
60
61     @XmlElement(name = "session_persistence")
62     NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence;
63
64     @XmlElement(name = "members")
65     List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
66
67     public NeutronLoadBalancerPool() {
68         loadBalancerPoolMembers = new ArrayList<NeutronLoadBalancerPoolMember>();
69     }
70
71     public String getLoadBalancerPoolName() {
72         return loadBalancerPoolName;
73     }
74
75     public void setLoadBalancerPoolName(String loadBalancerPoolName) {
76         this.loadBalancerPoolName = loadBalancerPoolName;
77     }
78
79     public String getLoadBalancerPoolProtocol() {
80         return loadBalancerPoolProtocol;
81     }
82
83     public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
84         this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
85     }
86
87     public String getLoadBalancerPoolLbAlgorithm() {
88         return loadBalancerPoolLbAlgorithm;
89     }
90
91     public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
92         this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
93     }
94
95     public String getNeutronLoadBalancerPoolHealthMonitorID() {
96         return neutronLoadBalancerPoolHealthMonitorID;
97     }
98
99     public void setNeutronLoadBalancerPoolHealthMonitorID(String neutronLoadBalancerPoolHealthMonitorID) {
100         this.neutronLoadBalancerPoolHealthMonitorID = neutronLoadBalancerPoolHealthMonitorID;
101     }
102
103     public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
104         return loadBalancerPoolAdminStateIsUp;
105     }
106
107     public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
108         this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
109     }
110
111     public NeutronLoadBalancer_SessionPersistence getLoadBalancerPoolSessionPersistence() {
112         return loadBalancerPoolSessionPersistence;
113     }
114
115     public void setLoadBalancerSessionPersistence(NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence) {
116         this.loadBalancerPoolSessionPersistence = loadBalancerPoolSessionPersistence;
117     }
118
119     public List<Neutron_ID> getLoadBalancerPoolListeners() {
120         return loadBalancerPoolListeners;
121     }
122
123     public void setLoadBalancerPoolListeners(List<Neutron_ID> loadBalancerPoolListeners) {
124         this.loadBalancerPoolListeners = loadBalancerPoolListeners;
125     }
126
127     public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
128         /*
129          * Update the pool_id of the member to that this.id
130          */
131         List<NeutronLoadBalancerPoolMember> answer = new ArrayList<NeutronLoadBalancerPoolMember>();
132         if (loadBalancerPoolMembers != null) {
133             for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers) {
134                 member.setPoolID(uuid);
135                 answer.add(member);
136             }
137         }
138         return answer;
139     }
140
141     public NeutronLoadBalancerPoolMember getNeutronLoadBalancerPoolMember(String uuid) {
142         for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers) {
143             if (uuid.equals(member.getID())) {
144                 return member;
145             }
146         }
147         return null;
148     }
149
150     public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
151         this.loadBalancerPoolMembers = loadBalancerPoolMembers;
152     }
153
154     public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
155         this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
156     }
157
158     public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
159         this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
160     }
161
162     public NeutronLoadBalancerPool extractFields(List<String> fields) {
163         NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool();
164         for (String s: fields) {
165             if (s.equals("id")) {
166                 ans.setID(this.getID());
167             }
168             if (s.equals("tenant_id")) {
169                 ans.setTenantID(this.getTenantID());
170             }
171             if (s.equals("name")) {
172                 ans.setLoadBalancerPoolName(this.getLoadBalancerPoolName());
173             }
174             if(s.equals("protocol")) {
175                 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
176             }
177             if (s.equals("lb_algorithm")) {
178                 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
179             }
180             if (s.equals("healthmonitor_id")) {
181                 ans.setNeutronLoadBalancerPoolHealthMonitorID(this.getNeutronLoadBalancerPoolHealthMonitorID());
182             }
183             if (s.equals("admin_state_up")) {
184                 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
185             }
186             if (s.equals("members")) {
187                 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
188             }
189         }
190         return ans;
191     }
192
193     @Override
194     public String toString() {
195         return "NeutronLoadBalancerPool{" +
196             "id='" + uuid + '\'' +
197             ", tenantID='" + tenantID + '\'' +
198             ", name='" + loadBalancerPoolName + '\'' +
199             ", protocol=" + loadBalancerPoolProtocol +'\''+
200             ", lbAlgorithm='" + loadBalancerPoolLbAlgorithm + '\'' +
201             ", healthmonitorID=" + neutronLoadBalancerPoolHealthMonitorID +
202             ", adminStateUp=" + loadBalancerPoolAdminStateIsUp +
203 // todo: add loadBalancerPoolMembers as joined string
204             '}';
205     }
206
207 }