From 5112d17d5276d22deff5ac7d1502f4e4f17bfbf7 Mon Sep 17 00:00:00 2001 From: OZG-Cloud Team <noreply@ozg-sh.de> Date: Thu, 30 May 2024 12:33:52 +0200 Subject: [PATCH] OZG-5412 semantik-adapter: Revert FormBasedSemantikAdapter --- .../formbased/FormBasedSemantikAdapter.java | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/FormBasedSemantikAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/FormBasedSemantikAdapter.java index 39a9a030..9f2d644a 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/FormBasedSemantikAdapter.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/FormBasedSemantikAdapter.java @@ -23,25 +23,41 @@ */ package de.ozgcloud.eingang.semantik.formbased; +import java.util.Collections; import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import de.ozgcloud.eingang.common.formdata.FormData; -import lombok.RequiredArgsConstructor; @Service -@RequiredArgsConstructor public class FormBasedSemantikAdapter { - private final List<FormBasedMapper> mappers; + @Autowired(required = false) + private List<FormBasedMapper> mappers = Collections.emptyList(); public FormData parseFormData(FormData formData) { - for(var mapper: mappers) { - if (mapper.isResponsible(formData)) { - formData = mapper.parseFormData(formData); - } + + return new FormDataProcessor().process(formData); + } + + class FormDataProcessor { + private FormData processedFormData; + + FormData process(FormData originalFormData) { + processedFormData = originalFormData; + mappers.stream() + .filter(mapper -> mapper.isResponsible(processedFormData)) + .forEach(this::parseWithMapper); + + return processedFormData; } - return formData; + + private void parseWithMapper(FormBasedMapper mapper) { + processedFormData = mapper.parseFormData(processedFormData); + } + } + } -- GitLab