1 package org.openecomp.sdc.be.components.merge.input;
3 import org.openecomp.sdc.be.components.merge.VspComponentsMergeCommand;
4 import org.openecomp.sdc.be.dao.api.ActionStatus;
5 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
6 import org.openecomp.sdc.be.impl.ComponentsUtils;
7 import org.openecomp.sdc.be.model.Component;
8 import org.openecomp.sdc.be.model.InputDefinition;
9 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
10 import org.springframework.core.annotation.Order;
12 import java.util.List;
14 import java.util.Map.Entry;
15 import java.util.stream.Stream;
17 import static java.util.stream.Collectors.toMap;
18 import static org.openecomp.sdc.be.components.merge.resource.ResourceDataMergeBusinessLogic.LAST_COMMAND;
19 import static org.openecomp.sdc.be.utils.PropertyDefinitionUtils.convertListOfProperties;
21 @org.springframework.stereotype.Component
22 @Order(LAST_COMMAND)//must run after all properties values were merged
23 public class ComponentInputsMergeBL extends InputsMergeCommand implements VspComponentsMergeCommand {
25 public ComponentInputsMergeBL(InputsValuesMergingBusinessLogic inputsValuesMergingBusinessLogic, DeclaredInputsResolver declaredInputsResolver, ToscaOperationFacade toscaOperationFacade, ComponentsUtils componentsUtils) {
26 super(inputsValuesMergingBusinessLogic, declaredInputsResolver, toscaOperationFacade, componentsUtils);
30 public ActionStatus mergeComponents(Component prevComponent, Component currentComponent) {
31 return super.redeclareAndMergeInputsValues(prevComponent, currentComponent);
35 public String description() {
36 return "merge component inputs";
40 List<InputDefinition> getInputsToMerge(Component component) {
41 return component.safeGetInputs();
45 Map<String, List<PropertyDataDefinition>> getProperties(Component component) {
46 return Stream.of(component.safeGetComponentInstancesProperties(),
47 component.safeGetComponentInstancesInputs(),
48 component.safeGetGroupsProperties(),
49 component.safeGetPolicyProperties())
50 .flatMap(map -> map.entrySet().stream())
51 .collect(toMap(Entry::getKey, entry -> convertListOfProperties(entry.getValue())));