aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java
new file mode 100644
index 0000000000..c3965a5f52
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java
@@ -0,0 +1,65 @@
+package org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
+import org.openecomp.sdc.translator.services.heattotosca.UnifiedComposition;
+import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+
+/**
+ * The type Unified composition single substitution.
+ */
+public class UnifiedCompositionSingleSubstitution implements UnifiedComposition {
+
+ // There is no consolidation in SingleSubstitution implemetation.
+ // In case of single substitution, if there is more than one entry in the
+ // unifiedComposotionDataList, they all should contain the same compute type but the
+ // consolidation between them was canceled.
+ // For different compute type, this implementation will be called more than once, each time
+ // per diff compute type, while sending one entry in the unifiedComposotionDataList.
+ @Override
+ public void createUnifiedComposition(ServiceTemplate serviceTemplate,
+ ServiceTemplate nestedServiceTemplate,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context) {
+ UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
+ if (CollectionUtils.isEmpty(unifiedCompositionDataList)) {
+ return;
+ }
+
+ for (int i = 0; i < unifiedCompositionDataList.size(); i++) {
+ List<UnifiedCompositionData> singleSubstitutionUnifiedList = new ArrayList<>();
+ singleSubstitutionUnifiedList.add(unifiedCompositionDataList.get(i));
+
+ Integer index = unifiedCompositionDataList.size() > 1 ? i : null;
+ Optional<ServiceTemplate> substitutionServiceTemplate =
+ unifiedCompositionService.createUnifiedSubstitutionServiceTemplate(serviceTemplate,
+ singleSubstitutionUnifiedList, context, index);
+
+ if (!substitutionServiceTemplate.isPresent()) {
+ continue;
+ }
+
+ String abstractNodeTemplateId = unifiedCompositionService
+ .createAbstractSubstituteNodeTemplate(serviceTemplate, substitutionServiceTemplate.get(),
+ singleSubstitutionUnifiedList, context, index);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(serviceTemplate, singleSubstitutionUnifiedList, context);
+
+ unifiedCompositionService
+ .cleanUnifiedCompositionEntities(serviceTemplate, singleSubstitutionUnifiedList, context);
+
+ }
+
+ unifiedCompositionService
+ .cleanNodeTypes(serviceTemplate, unifiedCompositionDataList, context);
+
+ }
+}