summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogic.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogic.java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogic.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogic.java
new file mode 100644
index 0000000000..251fb1a64e
--- /dev/null
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogic.java
@@ -0,0 +1,62 @@
+package org.openecomp.sdc.be.components.merge.resource;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.openecomp.sdc.be.components.merge.input.ComponentInputsMergeBL;
+import org.openecomp.sdc.be.components.merge.property.ComponentInstanceInputsMergeBL;
+import org.openecomp.sdc.be.components.merge.property.ComponentInstancePropertiesMergeBL;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.model.InputDefinition;
+import org.openecomp.sdc.be.model.Resource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ResourceDataMergeBusinessLogic implements MergeResourceBusinessLogic {
+
+ private final static Logger log = LoggerFactory.getLogger(ResourceDataMergeBusinessLogic.class.getName());
+
+ @javax.annotation.Resource
+ private ComponentInputsMergeBL inputsValuesMergeBL;
+
+ @javax.annotation.Resource
+ private ComponentInstancePropertiesMergeBL instancePropertiesValueMergeBL;
+
+ @javax.annotation.Resource
+ private ComponentInstanceInputsMergeBL instanceInputsValueMergeBL;
+
+ @Override
+ public ActionStatus mergeResourceEntities(Resource oldResource, Resource newResource) {
+ if (oldResource == null) {
+ return ActionStatus.OK;
+ }
+
+ ActionStatus mergeInstInputsStatus = instancePropertiesValueMergeBL.mergeComponentInstancesProperties(oldResource, newResource);
+ if (mergeInstInputsStatus != ActionStatus.OK) {
+ log.error("failed to merge instance properties of resource {} status is {}", newResource.getUniqueId(), mergeInstInputsStatus);
+ return mergeInstInputsStatus;
+ }
+
+ ActionStatus mergeInstPropsStatus = instanceInputsValueMergeBL.mergeComponentInstancesInputs(oldResource, newResource);
+ if (mergeInstPropsStatus != ActionStatus.OK) {
+ log.error("failed to merge instance inputs of resource {} status is {}", newResource.getUniqueId(), mergeInstPropsStatus);
+ return mergeInstPropsStatus;
+ }
+
+ ActionStatus mergeInputsStatus = mergeInputs(oldResource, newResource);
+ if (mergeInputsStatus != ActionStatus.OK) {
+ log.error("failed to merge inputs of resource {} status is {}", newResource.getUniqueId(), mergeInputsStatus);
+ return mergeInputsStatus;
+ }
+ return ActionStatus.OK;
+ }
+
+ private ActionStatus mergeInputs(Resource oldResource, Resource newResource) {
+ List<InputDefinition> inputsToMerge = newResource.getInputs() != null ? newResource.getInputs() : new ArrayList<>();
+ return inputsValuesMergeBL.mergeAndRedeclareComponentInputs(oldResource, newResource, inputsToMerge);
+ }
+
+
+}