1 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition;
3 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
5 import java.util.Collection;
6 import java.util.HashMap;
7 import java.util.HashSet;
9 import java.util.Optional;
12 public class UnifiedSubstitutionData {
14 //Key - node template id, Value - related abstract node template id
15 private Map<String, String> nodesRelatedAbstractNode = new HashMap<>();
16 //Key - node template id, Value - related node template id in the substitution service template
17 private Map<String, String> nodesRelatedSubstitutionServiceTemplateNode = new HashMap<>();
18 private Map<String, NodeTemplateInformation> cleanedNodeTemplates = new HashMap<>();
19 //Key - nested node template id, Value - related unified nested node template id
20 private Map<String, String> nestedNodeTemplateRelatedUnifiedTranslatedId = new HashMap<>();
21 //Key - nested node type id, Value - related unified nested node template id
22 private Map<String, String> nestedNodeTypeRelatedUnifiedTranslatedId = new HashMap<>();
23 //Key - handled compute type, Value - number of times it was handled
24 private Map<String, Integer> handledComputeTypesInNestedSubstitutionTemplate =
26 //Key - nested compute type, Value - list of nested files that the compute type is present
27 private Map<String, Set<String>> handledNestedComputeTypesNestedFiles = new HashMap<>();
28 //Key - new property id, Value - orig property value
29 private Map<String, Object> newParameterIdsToPropertiesFromOrigNodeTemplate = new HashMap<>();
30 //handled nested files
31 private Set<String> handledNestedFiles = new HashSet<>();
33 public Map<String, String> getNodesRelatedAbstractNode() {
34 return nodesRelatedAbstractNode;
37 public void setNodesRelatedAbstractNode(
38 Map<String, String> nodesRelatedAbstractNode) {
39 this.nodesRelatedAbstractNode = nodesRelatedAbstractNode;
42 public Map<String, String> getNodesRelatedSubstitutionServiceTemplateNode() {
43 return nodesRelatedSubstitutionServiceTemplateNode;
46 public void setNodesRelatedSubstitutionServiceTemplateNode(
47 Map<String, String> nodesRelatedSubstitutionServiceTemplateNode) {
48 this.nodesRelatedSubstitutionServiceTemplateNode = nodesRelatedSubstitutionServiceTemplateNode;
51 public String getNodeRelatedAbstractNode(String origNodeId) {
52 return this.nodesRelatedAbstractNode.get(origNodeId);
55 public Collection<String> getAllRelatedAbstractNodeIds() {
56 return this.nodesRelatedAbstractNode.values();
59 public Collection<String> getAllUnifiedNestedNodeTemplateIds() {
60 return this.nestedNodeTemplateRelatedUnifiedTranslatedId.values();
64 * Add cleaned node template.
66 * @param nodeTemplateId the node template id
67 * @param unifiedCompositionEntity the unified composition entity
68 * @param nodeTemplate the node template
70 public void addCleanedNodeTemplate(String nodeTemplateId,
71 UnifiedCompositionEntity unifiedCompositionEntity,
72 NodeTemplate nodeTemplate) {
73 NodeTemplateInformation nodeTemplateInformation = new NodeTemplateInformation(
74 unifiedCompositionEntity, nodeTemplate);
75 this.cleanedNodeTemplates.putIfAbsent(nodeTemplateId, nodeTemplateInformation);
78 public NodeTemplate getCleanedNodeTemplate(String nodeTemplateId) {
79 return this.cleanedNodeTemplates.get(nodeTemplateId).getNodeTemplate().clone();
82 public UnifiedCompositionEntity getCleanedNodeTemplateCompositionEntity(String nodeTemplateId) {
83 return this.cleanedNodeTemplates.get(nodeTemplateId).getUnifiedCompositionEntity();
86 public void addUnifiedNestedNodeTemplateId(String nestedNodeTemplateId,
87 String unifiedNestedNodeRelatedId) {
88 this.nestedNodeTemplateRelatedUnifiedTranslatedId
89 .put(nestedNodeTemplateId, unifiedNestedNodeRelatedId);
92 public Optional<String> getUnifiedNestedNodeTemplateId(String nestedNodeTemplateId) {
93 return this.nestedNodeTemplateRelatedUnifiedTranslatedId.get(nestedNodeTemplateId) == null
95 : Optional.of(this.nestedNodeTemplateRelatedUnifiedTranslatedId.get(nestedNodeTemplateId));
98 public void addUnifiedNestedNodeTypeId(String nestedNodeTypeId,
99 String unifiedNestedNodeRelatedId) {
100 this.nestedNodeTypeRelatedUnifiedTranslatedId.put(nestedNodeTypeId, unifiedNestedNodeRelatedId);
103 public Optional<String> getUnifiedNestedNodeTypeId(String nestedNodeTypeId) {
104 return this.nestedNodeTypeRelatedUnifiedTranslatedId.get(nestedNodeTypeId) == null ? Optional
106 : Optional.of(this.nestedNodeTypeRelatedUnifiedTranslatedId.get(nestedNodeTypeId));
109 public void addHandledComputeType(String nestedServiceTemplateFileName,
110 String handledComputeType) {
112 if (this.handledComputeTypesInNestedSubstitutionTemplate.containsKey(handledComputeType)) {
113 Integer timesHandled =
114 this.handledComputeTypesInNestedSubstitutionTemplate.get(handledComputeType);
115 this.handledComputeTypesInNestedSubstitutionTemplate
116 .put(handledComputeType, timesHandled + 1);
118 this.handledNestedFiles.add(nestedServiceTemplateFileName);
119 handledComputeTypesInNestedSubstitutionTemplate.put(handledComputeType, 0);
123 public boolean isComputeTypeHandledInServiceTemplate(String computeType) {
124 return this.handledComputeTypesInNestedSubstitutionTemplate.containsKey(computeType);
127 public int getHandledNestedComputeNodeTemplateIndex(String computeType) {
128 return this.handledComputeTypesInNestedSubstitutionTemplate.containsKey(computeType) ?
129 this.handledComputeTypesInNestedSubstitutionTemplate.get(computeType):
133 public boolean isNestedServiceTemplateWasHandled(String nestedServiceTemplateFileName) {
134 return this.handledNestedFiles.contains(nestedServiceTemplateFileName);
137 public void addNestedFileToUsedNestedComputeType(String computeType,
138 String nestedServiceTemplateFileName){
139 this.handledNestedComputeTypesNestedFiles.putIfAbsent(computeType, new HashSet<>());
140 this.handledNestedComputeTypesNestedFiles.get(computeType).add(nestedServiceTemplateFileName);
143 public int getGlobalNodeTypeIndex(String computeType){
144 return this.handledNestedComputeTypesNestedFiles.get(computeType).size() == 1 ? 0:
145 this.handledNestedComputeTypesNestedFiles.get(computeType).size() - 1;
148 public void addNewPropertyIdToNodeTemplate(String newPropertyId,
149 Object origPropertyValue){
150 newParameterIdsToPropertiesFromOrigNodeTemplate.putIfAbsent(newPropertyId, origPropertyValue);
153 public Optional<Object> getNewPropertyInputParam(String newPropertyId){
154 if(!newParameterIdsToPropertiesFromOrigNodeTemplate.containsKey(newPropertyId)){
155 return Optional.empty();
158 return Optional.of(newParameterIdsToPropertiesFromOrigNodeTemplate.get(newPropertyId));
161 public Map<String, Object> getAllNewPropertyInputParamIds(){
162 return this.newParameterIdsToPropertiesFromOrigNodeTemplate;