From 9b808646c3a89ceedb6fe3df822719d99f2bb14c Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Thu, 20 Mar 2025 14:35:41 +0100
Subject: [PATCH] OZG-7573 refactor handleEndOfFile

---
 .../EingangStubReceiverStreamObserver.java     | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java
index fd810664..ec9080a7 100644
--- a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java
+++ b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java
@@ -33,7 +33,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
@@ -170,13 +169,22 @@ class EingangStubReceiverStreamObserver implements StreamObserver<GrpcRouteForwa
 	void handleEndOfFile() {
 		closeOutputPipe();
 		var completedIncomingFile = currentFile.toBuilder().file(getSavedFileContent()).build();
-		Optional.ofNullable(groupName)
-				.map(group -> attachments.computeIfAbsent(group, s -> new ArrayList<>()))
-				.orElse(representations)
-				.add(completedIncomingFile);
+		if (Objects.isNull(groupName)) {
+			addAsRepresentation(completedIncomingFile);
+		} else {
+			addAsAttachment(completedIncomingFile);
+		}
 		resetFileReceiving();
 	}
 
+	private void addAsRepresentation(IncomingFile completedIncomingFile) {
+		representations.add(completedIncomingFile);
+	}
+
+	private void addAsAttachment(IncomingFile completedIncomingFile) {
+		attachments.computeIfAbsent(groupName, s -> new ArrayList<>()).add(completedIncomingFile);
+	}
+
 	File getSavedFileContent() {
 		try {
 			return receivingFileContent.get(TIMEOUT_MINUTES, TimeUnit.MINUTES);
-- 
GitLab