- private static Either<ArtifactDefinition, Operation> saveToscaArtifactAndPopulateToscaArtifactsWithResult(
- Component component,
- final ComponentsUtils componentsUtils,
- final ArtifactTypeEnum artifactEnum,
- final BiFunction<Component, ArtifactDefinition, Either<ArtifactDefinition, Operation>> saveToscaArtifactPayloadFunction) {
-
- ArtifactDefinition artifactDefinition = getToscaArtifactByTypeOrThrowException(component, artifactEnum,
- componentsUtils);
-
- Either<ArtifactDefinition, Operation> result =
- saveToscaArtifactPayloadFunction.apply(component, artifactDefinition);
-
- if (result.isLeft()) {
- ArtifactDefinition def = result.left().value();
- component.getToscaArtifacts().put(def.getArtifactLabel(), def);
- }
-
- return result;
- }
-
- private static Optional<ArtifactDefinition> getToscaArtifactByType(
- final Map<String, ArtifactDefinition> toscaArtifacts,
- final ArtifactTypeEnum typeEnum) {
- return toscaArtifacts.values().stream()
- .filter(p -> p.getArtifactType().equals(typeEnum.getType()))
- .findAny();
- }
-
- private static ArtifactDefinition getToscaArtifactByTypeOrThrowException(
- final Component component,
- final ArtifactTypeEnum typeEnum,
- final ComponentsUtils componentsUtils) {
-
- return Optional.ofNullable(component.getToscaArtifacts())
- .flatMap(toscaArtifacts -> getToscaArtifactByType(toscaArtifacts, typeEnum))
- .orElseThrow(() -> {
- log.debug("Impossible to find a ToscaArtifact with type '{}' for {}", typeEnum.getType(), component);
- return new ByResponseFormatComponentException(
- componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_FOUND, typeEnum.name()));
- });
- }
-