component = getAndValidateComponentForCreate(userId, componentId, componentType, shouldLockComp);
ImmutablePair<StorageOperationStatus, String> status = validateOutputName(component, componentInstOutputsMapUi);
if (status.getLeft() != StorageOperationStatus.OK) {
- throw new ByResponseFormatComponentException(componentsUtils.getResponseFormat(ActionStatus.OUTPUT_NAME_ALREADY_EXIST, status.getRight()));
+ throw new ByResponseFormatComponentException(
+ componentsUtils.getResponseFormat(ActionStatus.OUTPUT_NAME_ALREADY_EXIST, status.getRight()));
}
result = attributeDeclarationOrchestrator.declareAttributesToOutputs(component, componentInstOutputsMapUi)
.left().bind(outputsToCreate -> prepareOutputsForCreation(userId, componentId, outputsToCreate))
}
private ImmutablePair<StorageOperationStatus, String> validateOutputName(final Component component,
- final ComponentInstOutputsMap componentInstOutputsMapUi) {
+ final ComponentInstOutputsMap componentInstOutputsMapUi) {
final Map<String, List<ComponentInstanceAttribOutput>> outputDeclaredProperties = new HashMap<>();
if (MapUtils.isNotEmpty(componentInstOutputsMapUi.getComponentInstanceOutputsMap())) {
outputDeclaredProperties.putAll(componentInstOutputsMapUi.getComponentInstanceOutputsMap());
final var optionalComponentInstance = component.getComponentInstanceByName(getAttribute.get(0));
if (optionalComponentInstance.isPresent()) {
final var createdOutputs
- = createOutputs(component.getUniqueId(), userId, getAttribute.get(1), optionalComponentInstance.get());
+ = createOutputs(component.getUniqueId(), userId, getAttribute.get(1), optionalComponentInstance.get(),
+ outputDefinitionValue.getName());
if (createdOutputs.isRight()) {
return Either.right((createdOutputs.right().value()));
}
private Either<List<OutputDefinition>, ResponseFormat> createOutputs(final String componentUniqueId, final String userId,
final String attributeName,
- final ComponentInstance componentInstance) {
+ final ComponentInstance componentInstance,
+ final String outputName) {
// From Instance
- final List<OutputDefinition> result = new ArrayList<>();
final var componentInstanceAttributes = componentInstance.getAttributes();
if (CollectionUtils.isNotEmpty(componentInstanceAttributes)) {
final var componentInstanceAttributeOptional = componentInstanceAttributes.stream()
if (componentInstanceAttributeOptional.isPresent()) {
final var componentInstOutputsMap = new ComponentInstOutputsMap();
componentInstOutputsMap.setComponentInstanceAttributes(Collections.singletonMap(componentInstance.getUniqueId(),
- Collections.singletonList(new ComponentInstanceAttribOutput(componentInstanceAttributeOptional.get()))));
- final var createdOutputs = createMultipleOutputs(userId, componentUniqueId, ComponentTypeEnum.SERVICE,
+ Collections.singletonList(new ComponentInstanceAttribOutput(componentInstanceAttributeOptional.get(), outputName))));
+ return createMultipleOutputs(userId, componentUniqueId, ComponentTypeEnum.SERVICE,
componentInstOutputsMap, true, false);
- if (createdOutputs.isRight()) {
- return Either.right((createdOutputs.right().value()));
- }
- result.addAll(createdOutputs.left().value());
}
}
final List<PropertyDefinition> componentInstanceProperties = componentInstance.getProperties();
final ComponentInstOutputsMap componentInstOutputsMap = new ComponentInstOutputsMap();
ComponentInstanceAttribOutput attribute = getComponentInstanceAttribOutput(propertyDefinition);
componentInstOutputsMap.setComponentInstanceAttributes(Collections.singletonMap(componentInstance.getUniqueId(),
- Collections.singletonList(new ComponentInstanceAttribOutput(attribute))));
+ Collections.singletonList(new ComponentInstanceAttribOutput(attribute, outputName))));
return createMultipleOutputs(userId, componentUniqueId, ComponentTypeEnum.SERVICE, componentInstOutputsMap, true, false);
}
}
- return Either.left(result);
+ return Either.left(new ArrayList<>());
}
@NotNull