1 package org.openecomp.sdc.be.components.merge.resource;
4 import org.openecomp.sdc.be.components.merge.ComponentsGlobalMergeCommand;
5 import org.openecomp.sdc.be.components.merge.ComponentsMergeCommand;
6 import org.openecomp.sdc.be.components.merge.TopologyComparator;
7 import org.openecomp.sdc.be.components.merge.VspComponentsMergeCommand;
8 import org.openecomp.sdc.be.dao.api.ActionStatus;
9 import org.openecomp.sdc.be.model.Resource;
10 import org.springframework.stereotype.Component;
12 import java.util.List;
15 public class MergeCommandsFactory {
17 private final List<ComponentsGlobalMergeCommand> globalMergeCommands;
18 private final List<VspComponentsMergeCommand> mergeCommands;
19 private final TopologyComparator topologyComparator;
21 public MergeCommandsFactory(List<ComponentsGlobalMergeCommand> globalMergeCommands, List<VspComponentsMergeCommand> mergeCommands, TopologyComparator topologyComparator) {
22 this.globalMergeCommands = globalMergeCommands;
23 this.mergeCommands = mergeCommands;
24 this.topologyComparator = topologyComparator;
27 public Either<List<? extends ComponentsMergeCommand>, ActionStatus> getMergeCommands(Resource prevResource, Resource currResource) {
28 return topologyComparator.isTopologyChanged(prevResource, currResource)
30 .map(topologyChanged -> topologyChanged ? globalMergeCommands : mergeCommands);