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