1 package org.openecomp.sdc.be.components.merge.resource;
5 import org.openecomp.sdc.be.components.merge.GlobalTypesMergeBusinessLogic;
6 import org.openecomp.sdc.be.components.merge.TopologyComparator;
7 import org.openecomp.sdc.be.dao.api.ActionStatus;
8 import org.openecomp.sdc.be.model.Resource;
9 import org.springframework.stereotype.Component;
12 public class MergeResourceBLFactory {
14 @javax.annotation.Resource
15 private ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic;
17 @javax.annotation.Resource
18 private GlobalTypesMergeBusinessLogic globalTypesMergeBusinessLogic;
20 @javax.annotation.Resource
21 private TopologyComparator topologyComparator;
23 public Either<MergeResourceBusinessLogic, ActionStatus> getInstance(Resource oldResource, Resource newResource) {
24 Either<Boolean, ActionStatus> isTopologyChangeEither = topologyComparator.isTopologyChanged(oldResource, newResource);
25 return isTopologyChangeEither.bimap(this::getInstance, actionStatus -> actionStatus);
28 private MergeResourceBusinessLogic getInstance(boolean topologyChanged) {
29 return topologyChanged ? globalTypesMergeBusinessLogic : resourceDataMergeBusinessLogic;