1 package org.openecomp.sdc.be.components.merge;
4 import org.openecomp.sdc.be.components.impl.BaseBusinessLogic;
5 import org.openecomp.sdc.be.components.impl.generic.GenericTypeBusinessLogic;
6 import org.openecomp.sdc.be.dao.api.ActionStatus;
7 import org.openecomp.sdc.be.model.InputDefinition;
8 import org.openecomp.sdc.be.model.Resource;
9 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
10 import org.springframework.stereotype.Component;
12 import java.util.List;
14 import java.util.stream.Collectors;
17 public class GlobalInputsFilteringBusinessLogic extends BaseBusinessLogic {
19 @javax.annotation.Resource
20 private GenericTypeBusinessLogic genericTypeBusinessLogic;
22 Either<List<InputDefinition>, ActionStatus> filterGlobalInputs(Resource newResource) {
23 Either<Resource, StorageOperationStatus> genericComp = toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(newResource.fetchGenericTypeToscaNameFromConfig());
24 return genericComp.bimap(genericResource -> findCommonInputs(genericResource, newResource),
25 storageOperationStatus -> componentsUtils.convertFromStorageResponse(storageOperationStatus));
28 private List<InputDefinition> findCommonInputs(Resource genericResource, Resource resource) {
29 List<InputDefinition> resourceInputs = resource.getInputs();
30 List<InputDefinition> genericInputs = genericTypeBusinessLogic.generateInputsFromGenericTypeProperties(genericResource);
31 Set<String> genericInputsNames = genericInputs.stream().map(InputDefinition::getName).collect(Collectors.toSet());
32 return resourceInputs.stream().filter(input -> genericInputsNames.contains(input.getName())).collect(Collectors.toList());