Fixes Bug 5187
[ovsdb.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / translator / NeutronSecurityGroup.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc. and others.  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.ovsdb.openstack.netvirt.translator;
10
11 import java.io.Serializable;
12 import java.util.ArrayList;
13 import java.util.List;
14
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;
19
20 /**
21  * OpenStack Neutron v2.0 Security Group bindings.
22  * See OpenStack Network API v2.0 Reference for description of
23  * annotated attributes. The current fields are as follows:
24  * <p>
25  * id                   uuid-str unique ID for the security group.
26  * name                 String name of the security group.
27  * description          String name of the security group.
28  * tenant_id            uuid-str Owner of security rule..
29  * security_group_rules List&lt;NeutronSecurityRule&gt; nested RO in the sec group.
30  */
31
32 @XmlRootElement
33 @XmlAccessorType(XmlAccessType.NONE)
34
35 public class NeutronSecurityGroup implements Serializable, INeutronObject {
36     private static final long serialVersionUID = 1L;
37
38     @XmlElement(name = "id")
39     String securityGroupUUID;
40
41     @XmlElement(name = "name")
42     String securityGroupName;
43
44     @XmlElement(name = "description")
45     String securityGroupDescription;
46
47     @XmlElement(name = "tenant_id")
48     String securityGroupTenantID;
49
50     @XmlElement(name = "security_group_rules")
51     List<NeutronSecurityRule> neutronSecurityRule;
52
53     public NeutronSecurityGroup() {
54         neutronSecurityRule = new ArrayList<>();
55
56     }
57
58     public String getID() {
59         return securityGroupUUID;
60     }
61
62     public void setID(String id) {
63         securityGroupUUID = id;
64     }
65
66     // @deprecated use getID()
67     public String getSecurityGroupUUID() {
68         return securityGroupUUID;
69     }
70
71     // @deprecated use setID()
72     public void setSecurityGroupUUID(String securityGroupUUID) {
73         this.securityGroupUUID = securityGroupUUID;
74     }
75
76     public String getSecurityGroupName() {
77         return securityGroupName;
78     }
79
80     public void setSecurityGroupName(String securityGroupName) {
81         this.securityGroupName = securityGroupName;
82     }
83
84     public String getSecurityGroupDescription() {
85         return securityGroupDescription;
86     }
87
88     public void setSecurityGroupDescription(String securityGroupDescription) {
89         this.securityGroupDescription = securityGroupDescription;
90     }
91
92     public String getSecurityGroupTenantID() {
93         return securityGroupTenantID;
94     }
95
96     public void setSecurityGroupTenantID(String securityGroupTenantID) {
97         this.securityGroupTenantID = securityGroupTenantID;
98     }
99
100     // Rules In Group
101     public List<NeutronSecurityRule> getSecurityRules() {
102         return neutronSecurityRule;
103     }
104
105     public void setSecurityRules(List<NeutronSecurityRule> neutronSecurityRule) {
106         this.neutronSecurityRule = neutronSecurityRule;
107     }
108
109     public NeutronSecurityGroup extractFields(List<String> fields) {
110         NeutronSecurityGroup ans = new NeutronSecurityGroup ();
111         for (String s : fields) {
112             switch (s) {
113                 case "id":
114                     ans.setID(this.getID());
115                     break;
116                 case "name":
117                     ans.setSecurityGroupName(this.getSecurityGroupName());
118                     break;
119                 case "description":
120                     ans.setSecurityGroupDescription(this.getSecurityGroupDescription());
121                     break;
122                 case "tenant_id":
123                     ans.setSecurityGroupTenantID(this.getSecurityGroupTenantID());
124                     break;
125                 case "security_group_rules":
126                     ans.setSecurityRules(this.getSecurityRules());
127                     break;
128             }
129         }
130         return ans;
131     }
132
133     @Override
134     public String toString() {
135         return "NeutronSecurityGroup{" +
136                 "securityGroupUUID='" + securityGroupUUID + '\'' +
137                 ", securityGroupName='" + securityGroupName + '\'' +
138                 ", securityGroupDescription='" + securityGroupDescription + '\'' +
139                 ", securityGroupTenantID='" + securityGroupTenantID + '\'' +
140                 ", securityRules=" + neutronSecurityRule + "]";
141     }
142
143     public void initDefaults() {
144         //TODO verify no defaults values are nessecary required.
145     }
146 }