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.Iterator;
14 import java.util.List;
15 import javax.xml.bind.annotation.XmlAccessType;
16 import javax.xml.bind.annotation.XmlAccessorType;
17 import javax.xml.bind.annotation.XmlElement;
18 import javax.xml.bind.annotation.XmlRootElement;
21 @XmlAccessorType(XmlAccessType.NONE)
22 public final class NeutronQosPolicy extends NeutronObject<NeutronQosPolicy>
23 implements Serializable, INeutronObject<NeutronQosPolicy> {
24 private static final long serialVersionUID = 1L;
26 @XmlElement(name = "name")
29 @XmlElement(defaultValue = "false", name = "shared")
32 @XmlElement(name = "bandwidth_limit_rules")
33 List<NeutronQosBandwidthRule> bwLimitRules;
35 @XmlElement(name = "dscp_marking_rules")
36 List<NeutronQosDscpMarkingRule> dscpRules;
38 public String getQosPolicyName() {
42 public void setQosPolicyName(String qosPolicyName) {
43 this.name = qosPolicyName;
46 public Boolean getPolicyIsShared() {
50 public void setPolicyIsShared(Boolean qosPolicyIsShared) {
51 this.shared = qosPolicyIsShared;
54 public List<NeutronQosBandwidthRule> getBwLimitRules() {
58 public void setQosBwLimitRules(List<NeutronQosBandwidthRule> qosBwLimitRules) {
59 this.bwLimitRules = qosBwLimitRules;
62 public List<NeutronQosDscpMarkingRule> getDscpRules() {
66 public void setDscpRules(List<NeutronQosDscpMarkingRule> qosDscpRules) {
67 this.dscpRules = qosDscpRules;
70 public NeutronQosPolicy extractFields(List<String> fields) {
71 NeutronQosPolicy ans = new NeutronQosPolicy();
72 Iterator<String> i = fields.iterator();
76 ans.setID(this.getID());
78 if (s.equals("tenant_id")) {
79 ans.setTenantID(this.getTenantID());
81 if (s.equals("name")) {
82 ans.setQosPolicyName(this.getQosPolicyName());
84 if (s.equals("shared")) {
85 ans.setPolicyIsShared(this.getPolicyIsShared());
87 if (s.equals("bandwidth_limit_rules")) {
88 List<NeutronQosBandwidthRule> qosBwRuleList = new ArrayList<>();
89 qosBwRuleList.addAll(this.getBwLimitRules());
90 ans.setQosBwLimitRules(qosBwRuleList);
92 if (s.equals("dscp_marking_rules")) {
93 List<NeutronQosDscpMarkingRule> qosDscpRuleList = new ArrayList<>();
94 qosDscpRuleList.addAll(this.getDscpRules());
95 ans.setDscpRules(qosDscpRuleList);
102 public String toString() {
103 return "NeutronQosPolicy{" + "qosPolicyUUID='" + uuid + '\'' + ", qosPolicyTenantID='" + tenantID + '\''
104 + ", qosPolicyName='" + name + '\'' + ", qosPolicyIsShared='" + shared + '\'' + ", qosBwLimitRules='"
105 + bwLimitRules + '\'' + ", qosDscpRules='" + dscpRules + '\'' + '}';