From 4e777d786d34ebdba3f8986bfb1c6532cc4153ef Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 24 Jun 2024 13:17:35 +0200
Subject: [PATCH] OZG-5841 OZG-5952 Refactor BehoerdenschluesselProperties

---
 .../alfa/export/BehoerdenschluesselProperties.java | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/BehoerdenschluesselProperties.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/BehoerdenschluesselProperties.java
index e2892ccc46..ac1fa13508 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/BehoerdenschluesselProperties.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/BehoerdenschluesselProperties.java
@@ -1,5 +1,6 @@
 package de.ozgcloud.alfa.export;
 
+import java.util.List;
 import java.util.Optional;
 
 import org.apache.commons.lang3.StringUtils;
@@ -37,14 +38,23 @@ public class BehoerdenschluesselProperties {
 	}
 
 	private Optional<Codeliste> getCodeliste(String behoerdenschluessel) {
-		var matchingCodelisten = xdomeaProperties.getCodeliste().stream()
-				.filter(codeliste -> codeliste.getPattern().matcher(behoerdenschluessel).matches()).toList();
+		var matchingCodelisten = getCodelistenMatchingBehoerdenschluessel(behoerdenschluessel);
 		if (matchingCodelisten.size() > 1) {
 			throw new AmbiguousCodelistePatternException(behoerdenschluessel);
 		}
 		return matchingCodelisten.size() == 1 ? Optional.of(matchingCodelisten.getFirst()) : Optional.empty();
 	}
 
+	private List<Codeliste> getCodelistenMatchingBehoerdenschluessel(String behoerdenschluessel) {
+		return xdomeaProperties.getCodeliste().stream()
+				.filter(codeliste -> codelisteMatchesBehoerdenschluessel(codeliste, behoerdenschluessel))
+				.toList();
+	}
+
+	private boolean codelisteMatchesBehoerdenschluessel(Codeliste codeliste, String behoerdenschluessel) {
+		return codeliste.getPattern().matcher(behoerdenschluessel).matches();
+	}
+
 	private static Optional<String> ofNullableOrBlank(String value) {
 		return Optional.ofNullable(value).filter(StringUtils::isNotBlank);
 	}
-- 
GitLab