From fa62a17ca75fafad17e9c382c1260c4a402083b4 Mon Sep 17 00:00:00 2001
From: "Zickermann, Jan" <jan.zickermann@dataport.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 39a9a030a..9f2d644ab 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