Fix FindBugs violations
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / NeutronQosPolicy.java
1 /*
2  * Copyright (c) 2016 Intel Corporation.  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 @XmlRootElement
19 @XmlAccessorType(XmlAccessType.NONE)
20 public final class NeutronQosPolicy extends NeutronBaseAttributes<NeutronQosPolicy> {
21     private static final long serialVersionUID = 1L;
22
23     @XmlElement(defaultValue = "false", name = "shared")
24     Boolean shared;
25
26     @XmlElement(name = "bandwidth_limit_rules")
27     List<NeutronQosBandwidthLimitRule> bandwidthLimitRules;
28
29     @XmlElement(name = "dscp_marking_rules")
30     List<NeutronQosDscpMarkingRule> dscpMarkingRules;
31
32     @XmlElement(name = "minimum_bandwidth_rules")
33     List<NeutronQosMinimumBandwidthRule> minimumBandwidthRules;
34
35     public Boolean getPolicyIsShared() {
36         return shared;
37     }
38
39     public void setPolicyIsShared(Boolean qosPolicyIsShared) {
40         this.shared = qosPolicyIsShared;
41     }
42
43     public List<NeutronQosBandwidthLimitRule> getBandwidthLimitRules() {
44         return bandwidthLimitRules;
45     }
46
47     public void setQosBandwidthLimitRules(List<NeutronQosBandwidthLimitRule> qosBandwidthLimitRules) {
48         this.bandwidthLimitRules = qosBandwidthLimitRules;
49     }
50
51     public List<NeutronQosDscpMarkingRule> getDscpMarkingRules() {
52         return dscpMarkingRules;
53     }
54
55     public void setDscpMarkingRules(List<NeutronQosDscpMarkingRule> qosDscpMarkingRules) {
56         this.dscpMarkingRules = qosDscpMarkingRules;
57     }
58
59     public List<NeutronQosMinimumBandwidthRule> getMinimumBandwidthRules() {
60         return minimumBandwidthRules;
61     }
62
63     public void setMinimumBandwidthRules(List<NeutronQosMinimumBandwidthRule> qosMinimumBandwidthRules) {
64         this.minimumBandwidthRules = qosMinimumBandwidthRules;
65     }
66
67     @Override
68     protected boolean extractField(String field, NeutronQosPolicy ans) {
69         switch (field) {
70             case "shared":
71                 ans.setPolicyIsShared(this.getPolicyIsShared());
72                 break;
73             case "bandwidth_limit_rules":
74                 List<NeutronQosBandwidthLimitRule> qosBandwidthRuleList = new ArrayList<>();
75                 qosBandwidthRuleList.addAll(this.getBandwidthLimitRules());
76                 ans.setQosBandwidthLimitRules(qosBandwidthRuleList);
77                 break;
78             case "dscp_marking_rules":
79                 List<NeutronQosDscpMarkingRule> qosDscpMarkingRuleList = new ArrayList<>();
80                 qosDscpMarkingRuleList.addAll(this.getDscpMarkingRules());
81                 ans.setDscpMarkingRules(qosDscpMarkingRuleList);
82                 break;
83             case "minimum_bandwidth_rules":
84                 List<NeutronQosMinimumBandwidthRule> qosMinimumBandwidthRuleList = new ArrayList<>();
85                 qosMinimumBandwidthRuleList.addAll(this.getMinimumBandwidthRules());
86                 ans.setMinimumBandwidthRules(qosMinimumBandwidthRuleList);
87                 break;
88             default:
89                 return super.extractField(field, ans);
90         }
91         return true;
92     }
93
94     @Override
95     public String toString() {
96         return "NeutronQosPolicy{" + "qosPolicyUUID='" + uuid + '\'' + ", qosPolicyTenantID='" + tenantID + '\''
97                 + ", qosPolicyName='" + name + '\'' + ", qosPolicyIsShared='" + shared + '\''
98                 + ", qosbandwidthLimitRules='" + bandwidthLimitRules + '\'' + ", qosDscpMarkingRules='"
99                 + dscpMarkingRules + '\'' + ", qosMinimumBandwidthRules='" + minimumBandwidthRules + '\''
100                 + '}';
101     }
102 }