1 package org.openecomp.sdc.be.components.merge.resource;
4 import org.openecomp.sdc.be.components.merge.GlobalTypesMergeBusinessLogic;
5 import org.openecomp.sdc.be.components.merge.TopologyComparator;
6 import org.openecomp.sdc.be.dao.api.ActionStatus;
7 import org.openecomp.sdc.be.model.Resource;
8 import org.springframework.stereotype.Component;
10 import fj.data.Either;
13 public class MergeResourceBLFactory {
15 @javax.annotation.Resource
16 private ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic;
18 @javax.annotation.Resource
19 private GlobalTypesMergeBusinessLogic globalTypesMergeBusinessLogic;
21 @javax.annotation.Resource
22 private TopologyComparator topologyComparator;
24 public Either<MergeResourceBusinessLogic, ActionStatus> getInstance(Resource oldResource, Resource newResource) {
25 Either<Boolean, ActionStatus> isTopologyChangeEither = topologyComparator.isTopologyChanged(oldResource, newResource);
26 return isTopologyChangeEither.bimap(this::getInstance, actionStatus -> actionStatus);
29 private MergeResourceBusinessLogic getInstance(boolean topologyChanged) {
30 return topologyChanged ? globalTypesMergeBusinessLogic : resourceDataMergeBusinessLogic;