2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.datatypes.elements;
23 import static java.util.Collections.emptyList;
25 import java.util.List;
27 import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
30 * public class representing the component policy,
31 * described by the next properties:
35 * type (policy type name)
36 * typeUid (policy type uniqueId)
38 * derivedFrom (policy type derivedFrom)
48 public class PolicyDataDefinition extends PropertyDataDefinition {
51 * public constructor by default
53 public PolicyDataDefinition() {
57 public PolicyDataDefinition(PropertyDataDefinition propertyDataDefinition) {
58 super(propertyDataDefinition);
62 * public constructor from superclass
66 public PolicyDataDefinition(Map<String, Object> policy) {
71 * public copy constructor
75 public PolicyDataDefinition(PolicyDataDefinition other) {
77 this.setName(other.getName());
78 this.setUniqueId(other.getUniqueId());
79 this.setPolicyTypeName(other.getPolicyTypeName());
80 this.setPolicyTypeUid(other.getPolicyTypeUid());
81 this.setVersion(other.getVersion());
82 this.setDerivedFrom(other.getDerivedFrom());
83 this.setDescription(other.getDescription());
84 this.setPolicyUUID(other.getPolicyUUID());
85 this.setInvariantUUID(other.getInvariantUUID());
86 this.setInvariantName(other.getInvariantName());
87 this.setComponentName(other.getComponentName());
88 this.setIsFromCsar(other.getIsFromCsar());
89 this.setValue(other.getValue());
90 this.setOwnerId(other.getOwnerId());
91 this.setType(other.getType());
92 this.setInstanceUniqueId(other.getInstanceUniqueId());
93 this.setInputPath(other.getInputPath());
94 if (other.getProperties() != null) {
95 this.setProperties(other.getProperties());
97 if (other.getTargets() != null) {
98 this.setTargets(other.getTargets());
102 private void setIsFromCsar(Boolean isFromCsar) {
103 if (isFromCsar == null) {
104 setToscaPresentationValue(JsonPresentationFields.IS_FROM_CSAR, false);
106 setToscaPresentationValue(JsonPresentationFields.IS_FROM_CSAR, isFromCsar);
110 public Boolean getIsFromCsar() {
111 Boolean isFromCsar = (Boolean) getToscaPresentationValue(JsonPresentationFields.IS_FROM_CSAR);
112 return (isFromCsar != null) ? isFromCsar : false;
115 public String getComponentName() {
116 return (String) getToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_NAME);
119 public void setComponentName(String componentName) {
120 setToscaPresentationValue(JsonPresentationFields.CI_COMPONENT_NAME, componentName);
123 public String getInvariantName() {
124 return (String) getToscaPresentationValue(JsonPresentationFields.CI_INVARIANT_NAME);
127 public void setInvariantName(Object invariantName) {
128 setToscaPresentationValue(JsonPresentationFields.CI_INVARIANT_NAME, invariantName);
131 public String getPolicyTypeName() {
132 return (String) getToscaPresentationValue(JsonPresentationFields.TYPE);
135 public void setPolicyTypeName(String policyTypeName) {
136 setToscaPresentationValue(JsonPresentationFields.TYPE, policyTypeName);
139 public String getPolicyTypeUid() {
140 return (String) getToscaPresentationValue(JsonPresentationFields.TYPE_UNIQUE_ID);
143 public void setPolicyTypeUid(String policyTypeUid) {
144 setToscaPresentationValue(JsonPresentationFields.TYPE_UNIQUE_ID, policyTypeUid);
147 public String getVersion() {
148 return (String) getToscaPresentationValue(JsonPresentationFields.VERSION);
151 public void setVersion(String version) {
152 setToscaPresentationValue(JsonPresentationFields.VERSION, version);
155 public String getDerivedFrom() {
156 return (String) getToscaPresentationValue(JsonPresentationFields.DERIVED_FROM);
159 public void setDerivedFrom(String derivedFrom) {
160 setToscaPresentationValue(JsonPresentationFields.DERIVED_FROM, derivedFrom);
163 public String getDescription() {
164 return (String) getToscaPresentationValue(JsonPresentationFields.DESCRIPTION);
167 public void setDescription(String description) {
168 setToscaPresentationValue(JsonPresentationFields.DESCRIPTION, description);
171 public String getPolicyUUID() {
172 return (String) getToscaPresentationValue(JsonPresentationFields.UUID);
175 public void setPolicyUUID(String policyUUID) {
176 setToscaPresentationValue(JsonPresentationFields.UUID, policyUUID);
179 public String getInvariantUUID() {
180 return (String) getToscaPresentationValue(JsonPresentationFields.INVARIANT_UUID);
183 public void setInvariantUUID(String invariantUUID) {
184 setToscaPresentationValue(JsonPresentationFields.INVARIANT_UUID, invariantUUID);
187 @SuppressWarnings("unchecked")
188 public List<PropertyDataDefinition> getProperties() {
189 return (List<PropertyDataDefinition>) getToscaPresentationValue(JsonPresentationFields.PROPERTIES);
192 public void setProperties(List<PropertyDataDefinition> properties) {
193 setToscaPresentationValue(JsonPresentationFields.PROPERTIES, properties);
196 @SuppressWarnings("unchecked")
197 public Map<PolicyTargetType, List<String>> getTargets() {
198 return (Map<PolicyTargetType, List<String>>) getToscaPresentationValue(JsonPresentationFields.TARGETS);
201 public void setTargets(Map<PolicyTargetType, List<String>> metadata) {
202 setToscaPresentationValue(JsonPresentationFields.TARGETS, metadata);
205 public List<String> resolveComponentInstanceTargets() {
206 return resolveTargetsByType(PolicyTargetType.COMPONENT_INSTANCES);
209 public List<String> resolveGroupTargets() {
210 return resolveTargetsByType(PolicyTargetType.GROUPS);
213 public boolean containsTarget(String targetId, PolicyTargetType policyTargetType) {
214 return resolveTargetsByType(policyTargetType).contains(targetId);
217 private List<String> resolveTargetsByType(PolicyTargetType targetType) {
218 Map<PolicyTargetType, List<String>> targets = getTargets();
219 return targets == null || !targets.containsKey(targetType) ? emptyList() : targets.get(targetType);