1 package org.openecomp.sdc.be.components.merge.resource;
3 import java.util.ArrayList;
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;
17 public class ResourceDataMergeBusinessLogic implements MergeResourceBusinessLogic {
19 private final static Logger log = LoggerFactory.getLogger(ResourceDataMergeBusinessLogic.class.getName());
21 @javax.annotation.Resource
22 private ComponentInputsMergeBL inputsValuesMergeBL;
24 @javax.annotation.Resource
25 private ComponentInstancePropertiesMergeBL instancePropertiesValueMergeBL;
27 @javax.annotation.Resource
28 private ComponentInstanceInputsMergeBL instanceInputsValueMergeBL;
31 public ActionStatus mergeResourceEntities(Resource oldResource, Resource newResource) {
32 if (oldResource == null) {
33 return ActionStatus.OK;
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;
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;
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;
53 return ActionStatus.OK;
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);