7bd91060786467070347dada17366378413dc3e2
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / main / java / org / openecomp / sdc / translator / services / heattotosca / impl / unifiedcomposition / UnifiedCompositionNestedSingleCompute.java
1 package org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition;
2
3 import org.apache.commons.collections4.CollectionUtils;
4 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
5 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
6 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
7 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
8 import org.openecomp.sdc.translator.services.heattotosca.UnifiedComposition;
9 import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService;
10
11 import java.util.List;
12
13 public class UnifiedCompositionNestedSingleCompute implements UnifiedComposition {
14
15   // There is no consolidation in NestedSingleCompute implementation.
16   // In case of  nested single compute, if there is more than one entry in the
17   // unifiedCompositionDataList, each one should be handed separately, no consolidation between
18   // them.
19   @Override
20   public void createUnifiedComposition(ServiceTemplate serviceTemplate,
21                                        ServiceTemplate nestedServiceTemplate,
22                                        List<UnifiedCompositionData> unifiedCompositionDataList,
23                                        TranslationContext context) {
24     UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
25     if (CollectionUtils.isEmpty(unifiedCompositionDataList)) {
26       return;
27     }
28
29     UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(serviceTemplate, nestedServiceTemplate,
30         unifiedCompositionDataList, context, null);
31     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
32       unifiedCompositionService.handleUnifiedNestedDefinition(unifiedCompositionTo, unifiedCompositionData);
33       String nestedNodeTemplateId = unifiedCompositionData.getNestedTemplateConsolidationData().getNodeTemplateId();
34       unifiedCompositionService
35           .createNestedVfcInstanceGroup(nestedNodeTemplateId, unifiedCompositionTo, unifiedCompositionData);
36       unifiedCompositionService.updateUnifiedNestedConnectivity(unifiedCompositionTo, unifiedCompositionData);
37       unifiedCompositionService.cleanUnifiedNestedEntities(unifiedCompositionTo, unifiedCompositionData);
38       unifiedCompositionService.updateSubstitutionNodeTypePrefix(nestedServiceTemplate);
39     }
40   }
41 }