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 e2892ccc464bad65d6cde634a3c11be9133c1e0a..ac1fa1350809c5689566affddfd3f67db368b1b3 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); }