diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/MergeCommandsFactory.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/MergeCommandsFactory.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/MergeCommandsFactory.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/MergeCommandsFactory.java new file mode 100644 index 0000000000..4ebad2db2c --- /dev/null +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/resource/MergeCommandsFactory.java @@ -0,0 +1,33 @@ +package org.openecomp.sdc.be.components.merge.resource; + +import fj.data.Either; +import org.openecomp.sdc.be.components.merge.ComponentsGlobalMergeCommand; +import org.openecomp.sdc.be.components.merge.ComponentsMergeCommand; +import org.openecomp.sdc.be.components.merge.TopologyComparator; +import org.openecomp.sdc.be.components.merge.VspComponentsMergeCommand; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.model.Resource; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class MergeCommandsFactory { + + private final List<ComponentsGlobalMergeCommand> globalMergeCommands; + private final List<VspComponentsMergeCommand> mergeCommands; + private final TopologyComparator topologyComparator; + + public MergeCommandsFactory(List<ComponentsGlobalMergeCommand> globalMergeCommands, List<VspComponentsMergeCommand> mergeCommands, TopologyComparator topologyComparator) { + this.globalMergeCommands = globalMergeCommands; + this.mergeCommands = mergeCommands; + this.topologyComparator = topologyComparator; + } + + public Either<List<? extends ComponentsMergeCommand>, ActionStatus> getMergeCommands(Resource prevResource, Resource currResource) { + return topologyComparator.isTopologyChanged(prevResource, currResource) + .left() + .map(topologyChanged -> topologyChanged ? globalMergeCommands : mergeCommands); + + } +} |