[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / main / java / org / openecomp / sdc / translator / services / heattotosca / impl / unifiedcomposition / UnifiedCompositionScalingInstances.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.services.heattotosca.UnifiedComposition;
8 import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService;
9
10 import java.util.List;
11 import java.util.Optional;
12
13 public class UnifiedCompositionScalingInstances implements UnifiedComposition {
14
15   private UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
16
17   @Override
18   public void createUnifiedComposition(ServiceTemplate serviceTemplate,
19                                        ServiceTemplate nestedServiceTemplate,
20                                        List<UnifiedCompositionData> unifiedCompositionDataList,
21                                        TranslationContext context) {
22     if (CollectionUtils.isEmpty(unifiedCompositionDataList)
23         || context.isUnifiedHandledServiceTemplate(serviceTemplate)) {
24       return;
25     }
26
27     unifiedCompositionService.handleComplexVfcType(serviceTemplate, context);
28
29     Integer index = null;
30     String substitutionNodeTypeId =
31         unifiedCompositionService.getSubstitutionNodeTypeId(serviceTemplate,
32             unifiedCompositionDataList.get(0), null, context);
33     Optional<ServiceTemplate> substitutionServiceTemplate =
34         unifiedCompositionService.createUnifiedSubstitutionServiceTemplate(serviceTemplate,
35             unifiedCompositionDataList, context, substitutionNodeTypeId, index);
36
37     if (!substitutionServiceTemplate.isPresent()) {
38       return;
39     }
40
41     String abstractNodeTemplateId = unifiedCompositionService
42         .createAbstractSubstituteNodeTemplate(serviceTemplate, substitutionServiceTemplate.get(),
43             unifiedCompositionDataList, substitutionNodeTypeId, context, index);
44
45     unifiedCompositionService
46         .updateCompositionConnectivity(serviceTemplate, unifiedCompositionDataList, context);
47
48     unifiedCompositionService
49         .cleanUnifiedCompositionEntities(serviceTemplate, unifiedCompositionDataList, context);
50
51     unifiedCompositionService.cleanNodeTypes(serviceTemplate, unifiedCompositionDataList, context);
52   }
53 }