diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DateiformatCode.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DateiformatCode.java index 689d6db61d7d18e1537de4586f4b3fb854015b91..55bbc10a3cee71e5107cea88f298e89774f85455 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DateiformatCode.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DateiformatCode.java @@ -3,7 +3,6 @@ package de.ozgcloud.alfa.kommentar; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import java.util.Map.Entry; import java.util.Objects; import org.apache.commons.lang3.StringUtils; @@ -59,16 +58,29 @@ public final class DateiformatCode { } public static String getXdomeaCode(String mimeType, String extension) { - var fileExtensionToCodeMapping = mimeTypesMapping.getOrDefault( + var fileExtensionToCodeMapping = getFileExtensionToCodeMapping(mimeType); + if (hasSingleExtensionMapping(fileExtensionToCodeMapping)) { + return getCodeOrDefault(fileExtensionToCodeMapping); + } + return getCodeForExtensionOrDefault(extension, fileExtensionToCodeMapping); + } + + private static Map<String, String> getFileExtensionToCodeMapping(String mimeType) { + return mimeTypesMapping.getOrDefault( Objects.requireNonNullElse(mimeType, StringUtils.EMPTY), Collections.emptyMap()); - if (fileExtensionToCodeMapping.entrySet().size() == 1) { - return fileExtensionToCodeMapping.entrySet().stream().findFirst().map(Entry::getValue).orElse(SONSTIGES_CODE); - } - return fileExtensionToCodeMapping.getOrDefault( - Objects.requireNonNullElse(extension, StringUtils.EMPTY), - SONSTIGES_CODE - ); + } + + private static boolean hasSingleExtensionMapping(Map<String, String> fileExtensionToCodeMapping) { + return fileExtensionToCodeMapping.entrySet().size() == 1; + } + + private static String getCodeOrDefault(Map<String, String> fileExtensionToCodeMapping) { + return fileExtensionToCodeMapping.values().stream().findFirst().orElse(SONSTIGES_CODE); + } + + private static String getCodeForExtensionOrDefault(String extension, Map<String, String> fileExtensionToCodeMapping) { + return fileExtensionToCodeMapping.getOrDefault(Objects.requireNonNullElse(extension, StringUtils.EMPTY), SONSTIGES_CODE); } }