Sync Integ to Master
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / elements / PolicyDataDefinition.java
1 package org.openecomp.sdc.be.datatypes.elements;
2
3 import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
4 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
5
6 import java.io.Serializable;
7 import java.util.List;
8 import java.util.Map;
9
10 /**
11  * public class representing the component policy,
12  * described by the next properties:
13  * 
14  * name
15  * uniqueId
16  * type (policy type name)
17  * typeUid (policy type uniqueId)
18  * version (version)
19  * derivedFrom (policy type derivedFrom)
20  * description
21  * policyUUID
22  * invariantUUID
23  * members
24  * metadata
25  * properties
26  * targets
27  * isFromCsar
28  */
29 public class PolicyDataDefinition extends ToscaDataDefinition implements Serializable{
30
31         /**
32          * 
33          */
34         private static final long serialVersionUID = -4705371580363581255L;
35         
36         /**
37          * public constructor by default
38          */
39         public PolicyDataDefinition() {
40                 super();
41         }
42
43         /**
44          * public constructor from superclass
45          * @param policy
46          */
47         public PolicyDataDefinition(Map<String, Object> policy) {
48                 super(policy);
49         }
50         
51         /**
52          * public copy constructor
53          * @param other
54          */
55         public PolicyDataDefinition(PolicyDataDefinition other){
56                 this.setName(other.getName());
57                 this.setUniqueId(other.getUniqueId());
58                 this.setPolicyTypeName(other.getPolicyTypeName());
59                 this.setPolicyTypeUid(other.getPolicyTypeUid());
60                 this.setVersion(other.getVersion());
61                 this.setDerivedFrom(other.getDerivedFrom());
62                 this.setDescription(other.getDescription());
63                 this.setPolicyUUID(other.getPolicyUUID());
64                 this.setInvariantUUID(other.getInvariantUUID());
65                 this.setInvariantName(other.getInvariantName());
66                 this.setComponentName(other.getComponentName());
67                 this.setIsFromCsar(other.getIsFromCsar());
68                 if (other.getProperties() != null) {
69                         this.setProperties(other.getProperties());
70                 }
71                 if (other.getTargets() != null) {
72                         this.setTargets(other.getTargets());
73                 }
74         }
75
76         private void setIsFromCsar(Boolean isFromCsar) {
77                 if(isFromCsar == null){
78                         setToscaPresentationValue(JsonPresentationFields.IS_FROM_CSAR, false);
79                 } else {
80                         setToscaPresentationValue(JsonPresentationFields.IS_FROM_CSAR, isFromCsar);
81                 }
82         }
83
84         public Boolean getIsFromCsar() {
85                 Boolean isFromCsar = (Boolean) getToscaPresentationValue(JsonPresentationFields.IS_FROM_CSAR);
86                 return ( isFromCsar != null ) ? isFromCsar : false;
87         }
88         
89         public String getComponentName() {
90                 return (String) getToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_NAME);
91         }
92
93         public void setComponentName(String componentName) {
94                 setToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_NAME, componentName);
95         }
96         
97         public String getInvariantName() {
98                 return (String) getToscaPresentationValue(JsonPresentationFields.CI_INVARIANT_NAME);
99         }
100
101         public void setInvariantName(Object invariantName) {
102                 setToscaPresentationValue(JsonPresentationFields.CI_INVARIANT_NAME, invariantName);
103         }
104         
105         public String getName() {
106                 return (String) getToscaPresentationValue(JsonPresentationFields.NAME);
107         }
108
109         public void setName(String name) {
110                 setToscaPresentationValue(JsonPresentationFields.NAME, name);
111         }
112         
113         public String getUniqueId() {
114                 return (String) getToscaPresentationValue(JsonPresentationFields.UNIQUE_ID);
115         }
116
117         public void setUniqueId(String uniqueId) {
118                 setToscaPresentationValue(JsonPresentationFields.UNIQUE_ID, uniqueId);
119         }
120
121         public String getPolicyTypeName() {
122                 return (String) getToscaPresentationValue(JsonPresentationFields.TYPE);
123         }
124
125         public void setPolicyTypeName(String policyTypeName) {
126                 setToscaPresentationValue(JsonPresentationFields.TYPE, policyTypeName);
127         }
128
129         public String getPolicyTypeUid() {
130                 return (String) getToscaPresentationValue(JsonPresentationFields.TYPE_UNIQUE_ID);
131         }
132
133         public void setPolicyTypeUid(String policyTypeUid) {
134                 setToscaPresentationValue(JsonPresentationFields.TYPE_UNIQUE_ID, policyTypeUid);
135         }
136
137         public String getVersion() {
138                 return (String) getToscaPresentationValue(JsonPresentationFields.VERSION);
139         }
140
141         public void setVersion(String version) {
142                 setToscaPresentationValue(JsonPresentationFields.VERSION, version);
143         }
144
145         public String getDerivedFrom() {
146                 return (String) getToscaPresentationValue(JsonPresentationFields.DERIVED_FROM);
147         }
148
149         public void setDerivedFrom(String derivedFrom) {
150                 setToscaPresentationValue(JsonPresentationFields.DERIVED_FROM, derivedFrom);
151         }
152         
153         public String getDescription() {
154                 return (String) getToscaPresentationValue(JsonPresentationFields.DESCRIPTION);
155         }
156         
157         public void setDescription(String description) {
158                 setToscaPresentationValue(JsonPresentationFields.DESCRIPTION, description);
159         }
160         
161         public String getPolicyUUID() {
162                 return (String) getToscaPresentationValue(JsonPresentationFields.UUID);
163         }
164         
165         public void setPolicyUUID(String policyUUID) {
166                 setToscaPresentationValue(JsonPresentationFields.UUID, policyUUID);
167         }
168         public String getInvariantUUID() {
169                 return (String) getToscaPresentationValue(JsonPresentationFields.INVARIANT_UUID);
170         }
171         
172         public void setInvariantUUID(String invariantUUID) {
173                 setToscaPresentationValue(JsonPresentationFields.INVARIANT_UUID, invariantUUID);
174         }
175
176         @SuppressWarnings("unchecked")
177         public List<PropertyDataDefinition> getProperties() {
178                 return (List<PropertyDataDefinition> ) getToscaPresentationValue(JsonPresentationFields.PROPERTIES);
179         }
180
181         public void setProperties(List<PropertyDataDefinition> properties) {
182                 setToscaPresentationValue(JsonPresentationFields.PROPERTIES, properties);
183         }
184         
185         @SuppressWarnings("unchecked")
186         public Map<PolicyTargetType, List<String>> getTargets() {
187                 return (Map<PolicyTargetType, List<String>>) getToscaPresentationValue(JsonPresentationFields.TARGETS);
188         }
189
190         public void setTargets(Map<PolicyTargetType, List<String>> metadata) {
191                 setToscaPresentationValue(JsonPresentationFields.TARGETS, metadata);
192         }
193
194         public List<String> resolveComponentInstanceTargets() {
195                 Map<PolicyTargetType, List<String>> targets = getTargets();
196                 return targets == null ? null: targets.get(PolicyTargetType.COMPONENT_INSTANCES);
197         }
198
199         public boolean containsCmptInstanceAsTarget(String cmptInstId) {
200                 List<String> componentInstanceTargets = resolveComponentInstanceTargets();
201                 return componentInstanceTargets != null && componentInstanceTargets.contains(cmptInstId);
202         }
203         
204 }