1 package org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition;
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;
10 import java.util.ArrayList;
11 import java.util.List;
12 import java.util.Optional;
16 * The type Unified composition single substitution.
18 public class UnifiedCompositionSingleSubstitution implements UnifiedComposition {
20 // There is no consolidation in SingleSubstitution implemetation.
21 // In case of single substitution, if there is more than one entry in the
22 // unifiedComposotionDataList, they all should contain the same compute type but the
23 // consolidation between them was canceled.
24 // For different compute type, this implementation will be called more than once, each time
25 // per diff compute type, while sending one entry in the unifiedComposotionDataList.
27 public void createUnifiedComposition(ServiceTemplate serviceTemplate,
28 ServiceTemplate nestedServiceTemplate,
29 List<UnifiedCompositionData> unifiedCompositionDataList,
30 TranslationContext context) {
31 UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
32 if (CollectionUtils.isEmpty(unifiedCompositionDataList)) {
36 for (int i = 0; i < unifiedCompositionDataList.size(); i++) {
37 List<UnifiedCompositionData> singleSubstitutionUnifiedList = new ArrayList<>();
38 singleSubstitutionUnifiedList.add(unifiedCompositionDataList.get(i));
40 Integer index = unifiedCompositionDataList.size() > 1 ? i : null;
41 Optional<ServiceTemplate> substitutionServiceTemplate =
42 unifiedCompositionService.createUnifiedSubstitutionServiceTemplate(serviceTemplate,
43 singleSubstitutionUnifiedList, context, index);
45 if (!substitutionServiceTemplate.isPresent()) {
49 String abstractNodeTemplateId = unifiedCompositionService
50 .createAbstractSubstituteNodeTemplate(serviceTemplate, substitutionServiceTemplate.get(),
51 singleSubstitutionUnifiedList, context, index);
53 unifiedCompositionService
54 .updateCompositionConnectivity(serviceTemplate, singleSubstitutionUnifiedList, context);
56 unifiedCompositionService
57 .cleanUnifiedCompositionEntities(serviceTemplate, singleSubstitutionUnifiedList, context);
61 unifiedCompositionService
62 .cleanNodeTypes(serviceTemplate, unifiedCompositionDataList, context);