Refactoring Consolidation Service
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / merge / GlobalTypesMergeBusinessLogic.java
1 package org.openecomp.sdc.be.components.merge;
2
3 import java.util.List;
4
5 import org.openecomp.sdc.be.components.merge.input.ComponentInputsMergeBL;
6 import org.openecomp.sdc.be.components.merge.resource.MergeResourceBusinessLogic;
7 import org.openecomp.sdc.be.dao.api.ActionStatus;
8 import org.openecomp.sdc.be.model.InputDefinition;
9 import org.openecomp.sdc.be.model.Resource;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12 import org.springframework.stereotype.Component;
13
14 import fj.data.Either;
15
16 @Component
17 public class GlobalTypesMergeBusinessLogic implements MergeResourceBusinessLogic {
18
19     private static final Logger LOGGER = LoggerFactory.getLogger(GlobalTypesMergeBusinessLogic.class);
20
21     @javax.annotation.Resource
22     private GlobalInputsFilteringBusinessLogic globalInputsFilteringBusinessLogic;
23
24     @javax.annotation.Resource
25     private ComponentInputsMergeBL inputsValuesMergeBL;
26
27     @Override
28     public ActionStatus mergeResourceEntities(Resource oldResource, Resource newResource) {
29         if (oldResource == null) {
30             return ActionStatus.OK;
31         }
32         Either<List<InputDefinition>, ActionStatus> globalInputsEither = globalInputsFilteringBusinessLogic.filterGlobalInputs(newResource);
33         if (globalInputsEither.isRight()) {
34             LOGGER.error("failed to get global inputs of resource {} status is {}", newResource.getUniqueId(), globalInputsEither.right().value());
35             return globalInputsEither.right().value();
36         }
37         List<InputDefinition> globalInputs = globalInputsEither.left().value();
38         return inputsValuesMergeBL.mergeComponentInputs(oldResource, newResource, globalInputs);
39     }
40
41 }