251fb1a64ea7ec420865aac3089a07557a5cbd9e
[sdc.git] /
1 package org.openecomp.sdc.be.components.merge.resource;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.openecomp.sdc.be.components.merge.input.ComponentInputsMergeBL;
7 import org.openecomp.sdc.be.components.merge.property.ComponentInstanceInputsMergeBL;
8 import org.openecomp.sdc.be.components.merge.property.ComponentInstancePropertiesMergeBL;
9 import org.openecomp.sdc.be.dao.api.ActionStatus;
10 import org.openecomp.sdc.be.model.InputDefinition;
11 import org.openecomp.sdc.be.model.Resource;
12 import org.slf4j.Logger;
13 import org.slf4j.LoggerFactory;
14 import org.springframework.stereotype.Component;
15
16 @Component
17 public class ResourceDataMergeBusinessLogic implements MergeResourceBusinessLogic {
18
19     private final static Logger log = LoggerFactory.getLogger(ResourceDataMergeBusinessLogic.class.getName());
20
21     @javax.annotation.Resource
22     private ComponentInputsMergeBL inputsValuesMergeBL;
23
24     @javax.annotation.Resource
25     private ComponentInstancePropertiesMergeBL instancePropertiesValueMergeBL;
26
27     @javax.annotation.Resource
28     private ComponentInstanceInputsMergeBL instanceInputsValueMergeBL;
29
30     @Override
31     public ActionStatus mergeResourceEntities(Resource oldResource, Resource newResource) {
32         if (oldResource == null) {
33             return ActionStatus.OK;
34         }
35
36         ActionStatus mergeInstInputsStatus = instancePropertiesValueMergeBL.mergeComponentInstancesProperties(oldResource, newResource);
37         if (mergeInstInputsStatus != ActionStatus.OK) {
38             log.error("failed to merge instance properties of resource {} status is {}", newResource.getUniqueId(), mergeInstInputsStatus);
39             return mergeInstInputsStatus;
40         }
41
42         ActionStatus mergeInstPropsStatus = instanceInputsValueMergeBL.mergeComponentInstancesInputs(oldResource, newResource);
43         if (mergeInstPropsStatus != ActionStatus.OK) {
44             log.error("failed to merge instance inputs of resource {} status is {}", newResource.getUniqueId(), mergeInstPropsStatus);
45             return mergeInstPropsStatus;
46         }
47
48         ActionStatus mergeInputsStatus = mergeInputs(oldResource, newResource);
49         if (mergeInputsStatus != ActionStatus.OK) {
50             log.error("failed to merge inputs of resource {} status is {}", newResource.getUniqueId(), mergeInputsStatus);
51             return mergeInputsStatus;
52         }
53         return ActionStatus.OK;
54     }
55
56     private ActionStatus mergeInputs(Resource oldResource, Resource newResource) {
57         List<InputDefinition> inputsToMerge = newResource.getInputs() != null ? newResource.getInputs() : new ArrayList<>();
58         return inputsValuesMergeBL.mergeAndRedeclareComponentInputs(oldResource, newResource, inputsToMerge);
59     }
60
61
62 }