2 * Copyright (c) 2016 Intel Corporation. All rights reserved.
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
9 package org.opendaylight.neutron.spi;
11 import java.io.Serializable;
12 import java.util.ArrayList;
13 import java.util.List;
14 import javax.xml.bind.annotation.XmlAccessType;
15 import javax.xml.bind.annotation.XmlAccessorType;
16 import javax.xml.bind.annotation.XmlElement;
17 import javax.xml.bind.annotation.XmlRootElement;
20 @XmlAccessorType(XmlAccessType.NONE)
21 public final class NeutronQosPolicy extends NeutronBaseAttributes<NeutronQosPolicy> implements Serializable {
22 private static final long serialVersionUID = 1L;
24 @XmlElement(defaultValue = "false", name = "shared")
27 @XmlElement(name = "bandwidth_limit_rules")
28 List<NeutronQosBandwidthLimitRule> bandwidthLimitRules;
30 @XmlElement(name = "dscp_marking_rules")
31 List<NeutronQosDscpMarkingRule> dscpMarkingRules;
33 @XmlElement(name = "minimum_bandwidth_rules")
34 List<NeutronQosMinimumBandwidthRule> minimumBandwidthRules;
36 public Boolean getPolicyIsShared() {
40 public void setPolicyIsShared(Boolean qosPolicyIsShared) {
41 this.shared = qosPolicyIsShared;
44 public List<NeutronQosBandwidthLimitRule> getBandwidthLimitRules() {
45 return bandwidthLimitRules;
48 public void setQosBandwidthLimitRules(List<NeutronQosBandwidthLimitRule> qosBandwidthLimitRules) {
49 this.bandwidthLimitRules = qosBandwidthLimitRules;
52 public List<NeutronQosDscpMarkingRule> getDscpMarkingRules() {
53 return dscpMarkingRules;
56 public void setDscpMarkingRules(List<NeutronQosDscpMarkingRule> qosDscpMarkingRules) {
57 this.dscpMarkingRules = qosDscpMarkingRules;
60 public List<NeutronQosMinimumBandwidthRule> getMinimumBandwidthRules() {
61 return minimumBandwidthRules;
64 public void setMinimumBandwidthRules(List<NeutronQosMinimumBandwidthRule> qosMinimumBandwidthRules) {
65 this.minimumBandwidthRules = qosMinimumBandwidthRules;
69 protected boolean extractField(String field, NeutronQosPolicy ans) {
72 ans.setPolicyIsShared(this.getPolicyIsShared());
74 case "bandwidth_limit_rules":
75 List<NeutronQosBandwidthLimitRule> qosBandwidthRuleList = new ArrayList<>();
76 qosBandwidthRuleList.addAll(this.getBandwidthLimitRules());
77 ans.setQosBandwidthLimitRules(qosBandwidthRuleList);
79 case "dscp_marking_rules":
80 List<NeutronQosDscpMarkingRule> qosDscpMarkingRuleList = new ArrayList<>();
81 qosDscpMarkingRuleList.addAll(this.getDscpMarkingRules());
82 ans.setDscpMarkingRules(qosDscpMarkingRuleList);
84 case "minimum_bandwidth_rules":
85 List<NeutronQosMinimumBandwidthRule> qosMinimumBandwidthRuleList = new ArrayList<>();
86 qosMinimumBandwidthRuleList.addAll(this.getMinimumBandwidthRules());
87 ans.setMinimumBandwidthRules(qosMinimumBandwidthRuleList);
90 return super.extractField(field, ans);
96 public String toString() {
97 return "NeutronQosPolicy{" + "qosPolicyUUID='" + uuid + '\'' + ", qosPolicyTenantID='" + tenantID + '\''
98 + ", qosPolicyName='" + name + '\'' + ", qosPolicyIsShared='" + shared + '\''
99 + ", qosbandwidthLimitRules='" + bandwidthLimitRules + '\'' + ", qosDscpMarkingRules='"
100 + dscpMarkingRules + '\'' + ", qosMinimumBandwidthRules='" + minimumBandwidthRules + '\''