From 54cd297ed35eaa5274af64f6493d9875262ca551 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 18 Jul 2024 13:52:38 +0200
Subject: [PATCH] OZG-5156 Accept FIM messages in XTA adapter

hand over representations to new formdata in fim mapper
---
 .../java/de/ozgcloud/eingang/fim/FimDataMapper.java | 13 ++++++-------
 .../java/de/ozgcloud/eingang/fim/FimService.java    |  3 +--
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimDataMapper.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimDataMapper.java
index 799798b5c..58606186d 100644
--- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimDataMapper.java
+++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimDataMapper.java
@@ -1,6 +1,7 @@
 package de.ozgcloud.eingang.fim;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.IncomingFile;
 import de.ozgcloud.eingang.common.formdata.IncomingFileGroup;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.function.TriFunction;
@@ -11,25 +12,23 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
 
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 @Service
 @Log4j2
-class FimDataMapper implements TriFunction<Document, FimScheme, Collection<IncomingFileGroup>, FormData.FormDataBuilder> {
+class FimDataMapper implements TriFunction<Document, FimScheme, FormData, FormData.FormDataBuilder> {
 
     private static final String LABEL_KEY = "label";
     private static final String VALUE_KEY = "value";
 
     @Override
-    public FormData.FormDataBuilder apply(final Document document, final FimScheme fimScheme, final Collection<IncomingFileGroup> attachments) {
+    public FormData.FormDataBuilder apply(final Document document, final FimScheme fimScheme, final FormData initialFormData) {
         final FormData.FormDataBuilder formDataBuilder = FormData.builder();
         Map<String, Object> data = new LinkedHashMap<>();
         process(document.getDocumentElement(), fimScheme, data, 0);
         formDataBuilder.formData(data);
-        formDataBuilder.attachments(attachments);
+        formDataBuilder.attachments(initialFormData.getAttachments());
+        formDataBuilder.representations(initialFormData.getRepresentations());
         return formDataBuilder;
     }
 
diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
index 692158573..597e7b920 100644
--- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
+++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
@@ -14,7 +14,6 @@ import org.xml.sax.SAXException;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
-import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
@@ -82,7 +81,7 @@ public class FimService {
             throw new FimException("XML Document does not provide a scheme");
         }
         final FimScheme scheme = getSchemeForIdentifier(schemeName);
-        final FormData.FormDataBuilder builder = fimDataMapper.apply(document, scheme, initialFormData.getAttachments());
+        final FormData.FormDataBuilder builder = fimDataMapper.apply(document, scheme, initialFormData);
 
         final FimSchemeAdapter adapter = scheme.getSchemeAdapter();
 
-- 
GitLab