Fix FindBugs violations
[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 java.util.ArrayList;
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 /**
19  * OpenStack Neutron v2.0 Load Balancer as a service
20  * (LBaaS) bindings. See OpenStack Network API
21  * v2.0 Reference for description of  the fields:
22  * Implemented fields are as follows:
23  *
24  * <p>
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 &lt;NeutronLoadBalancerPoolMember&gt;
34  * http://docs.openstack.org/api/openstack-network/2.0/openstack-network.pdf
35  */
36
37 @XmlRootElement
38 @XmlAccessorType(XmlAccessType.NONE)
39 public final class NeutronLoadBalancerPool extends NeutronBaseAttributes<NeutronLoadBalancerPool> {
40     private static final long serialVersionUID = 1L;
41
42     @XmlElement(name = "protocol")
43     String loadBalancerPoolProtocol;
44
45     @XmlElement(name = "lb_algorithm")
46     String loadBalancerPoolLbAlgorithm;
47
48     @XmlElement(name = "healthmonitor_id")
49     String loadBalancerPoolHealthMonitorID;
50
51     @XmlElement(defaultValue = "true", name = "admin_state_up")
52     Boolean loadBalancerPoolAdminStateIsUp;
53
54     @XmlElement(name = "listeners")
55     List<NeutronID> loadBalancerPoolListeners;
56
57     @XmlElement(name = "session_persistence")
58     NeutronLoadBalancerSessionPersistence loadBalancerPoolSessionPersistence;
59
60     @XmlElement(name = "members")
61     List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
62
63     public NeutronLoadBalancerPool() {
64         loadBalancerPoolMembers = new ArrayList<>();
65     }
66
67     public String getLoadBalancerPoolProtocol() {
68         return loadBalancerPoolProtocol;
69     }
70
71     public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
72         this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
73     }
74
75     public String getLoadBalancerPoolLbAlgorithm() {
76         return loadBalancerPoolLbAlgorithm;
77     }
78
79     public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
80         this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
81     }
82
83     public String getLoadBalancerPoolHealthMonitorID() {
84         return loadBalancerPoolHealthMonitorID;
85     }
86
87     public void setLoadBalancerPoolHealthMonitorID(String loadBalancerPoolHealthMonitorID) {
88         this.loadBalancerPoolHealthMonitorID = loadBalancerPoolHealthMonitorID;
89     }
90
91     public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
92         return loadBalancerPoolAdminStateIsUp;
93     }
94
95     public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
96         this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
97     }
98
99     public NeutronLoadBalancerSessionPersistence getLoadBalancerPoolSessionPersistence() {
100         return loadBalancerPoolSessionPersistence;
101     }
102
103     public void setLoadBalancerSessionPersistence(NeutronLoadBalancerSessionPersistence persistence) {
104         this.loadBalancerPoolSessionPersistence = persistence;
105     }
106
107     public List<NeutronID> getLoadBalancerPoolListeners() {
108         return loadBalancerPoolListeners;
109     }
110
111     public void setLoadBalancerPoolListeners(List<NeutronID> loadBalancerPoolListeners) {
112         this.loadBalancerPoolListeners = loadBalancerPoolListeners;
113     }
114
115     public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
116         /*
117          * Update the pool_id of the member to that this.id
118          */
119         List<NeutronLoadBalancerPoolMember> answer = new ArrayList<>();
120         if (loadBalancerPoolMembers != null) {
121             for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
122                 member.setPoolID(uuid);
123                 answer.add(member);
124             }
125         }
126         return answer;
127     }
128
129     public NeutronLoadBalancerPoolMember getNeutronLoadBalancerPoolMember(String uuid) {
130         for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
131             if (uuid.equals(member.getID())) {
132                 return member;
133             }
134         }
135         return null;
136     }
137
138     public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
139         this.loadBalancerPoolMembers = loadBalancerPoolMembers;
140     }
141
142     public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
143         this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
144     }
145
146     public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
147         this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
148     }
149
150     @Override
151     protected boolean extractField(String field, NeutronLoadBalancerPool ans) {
152         switch (field) {
153             case "protocol":
154                 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
155                 break;
156             case "lb_algorithm":
157                 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
158                 break;
159             case "healthmonitor_id":
160                 ans.setLoadBalancerPoolHealthMonitorID(this.getLoadBalancerPoolHealthMonitorID());
161                 break;
162             case "admin_state_up":
163                 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
164                 break;
165             case "members":
166                 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
167                 break;
168             default:
169                 return super.extractField(field, ans);
170         }
171         return true;
172     }
173
174     @Override
175     public String toString() {
176         return "NeutronLoadBalancerPool{" + "id='" + uuid + '\'' + ", tenantID='" + tenantID + '\'' + ", name='"
177                 + name + '\'' + ", protocol=" + loadBalancerPoolProtocol + '\'' + ", lbAlgorithm='"
178                 + loadBalancerPoolLbAlgorithm + '\'' + ", healthmonitorID=" + loadBalancerPoolHealthMonitorID
179                 + ", adminStateUp=" + loadBalancerPoolAdminStateIsUp + '}';
180      // todo: add loadBalancerPoolMembers as joined string
181     }
182
183 }