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