From 59f13608ccd3cef787cafeec6000b830bc98cacd Mon Sep 17 00:00:00 2001 From: Marcus van Elst Date: Mon, 13 Apr 2026 07:21:31 +0200 Subject: [PATCH] Code-Optimierungen --- .../validation/StartConfigurationValidator.java | 14 +++++++------- .../PropertiesConfigurationPortAdapter.java | 5 +++-- .../PropertiesConfigurationPortAdapterTest.java | 12 ++++++------ 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/bootstrap/validation/StartConfigurationValidator.java b/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/bootstrap/validation/StartConfigurationValidator.java index 87e39a5..89ed664 100644 --- a/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/bootstrap/validation/StartConfigurationValidator.java +++ b/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/bootstrap/validation/StartConfigurationValidator.java @@ -307,13 +307,13 @@ public class StartConfigurationValidator { * or exists and is a directory. */ private void validateOptionalExistingDirectory(Path directoryPath, String fieldName, List errors) { - if (directoryPath != null && !directoryPath.toString().isBlank() && Files.exists(directoryPath)) { - if (!Files.isDirectory(directoryPath)) { - errors.add("- " + fieldName + ": exists but is not a directory: " + directoryPath); - } - } - // If it doesn't exist yet, that's acceptable - we don't auto-create - + if (directoryPath != null + && !directoryPath.toString().isBlank() + && Files.exists(directoryPath) + && !Files.isDirectory(directoryPath)) { + errors.add("- " + fieldName + ": exists but is not a directory: " + directoryPath); + } + // If it doesn't exist yet, that's acceptable - we don't auto-create } /** diff --git a/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/configuration/PropertiesConfigurationPortAdapter.java b/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/configuration/PropertiesConfigurationPortAdapter.java index 9af3389..c8ea919 100644 --- a/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/configuration/PropertiesConfigurationPortAdapter.java +++ b/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/configuration/PropertiesConfigurationPortAdapter.java @@ -8,6 +8,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Properties; import java.util.function.Function; +import java.util.function.UnaryOperator; import de.gecheckt.pdf.umbenenner.application.config.provider.MultiProviderConfiguration; import de.gecheckt.pdf.umbenenner.application.config.startup.StartConfiguration; @@ -45,7 +46,7 @@ public class PropertiesConfigurationPortAdapter implements ConfigurationPort { * * @param environmentLookup a function that looks up environment variables by name */ - public PropertiesConfigurationPortAdapter(Function environmentLookup) { + public PropertiesConfigurationPortAdapter(UnaryOperator environmentLookup) { this(environmentLookup, Paths.get(DEFAULT_CONFIG_FILE_PATH)); } @@ -69,7 +70,7 @@ public class PropertiesConfigurationPortAdapter implements ConfigurationPort { * @param environmentLookup a function that looks up environment variables by name * @param configFilePath the path to the configuration properties file */ - public PropertiesConfigurationPortAdapter(Function environmentLookup, Path configFilePath) { + public PropertiesConfigurationPortAdapter(UnaryOperator environmentLookup, Path configFilePath) { this.environmentLookup = environmentLookup; this.configFilePath = configFilePath; } diff --git a/pdf-umbenenner-adapter-out/src/test/java/de/gecheckt/pdf/umbenenner/adapter/out/configuration/PropertiesConfigurationPortAdapterTest.java b/pdf-umbenenner-adapter-out/src/test/java/de/gecheckt/pdf/umbenenner/adapter/out/configuration/PropertiesConfigurationPortAdapterTest.java index ea2b349..7f0c419 100644 --- a/pdf-umbenenner-adapter-out/src/test/java/de/gecheckt/pdf/umbenenner/adapter/out/configuration/PropertiesConfigurationPortAdapterTest.java +++ b/pdf-umbenenner-adapter-out/src/test/java/de/gecheckt/pdf/umbenenner/adapter/out/configuration/PropertiesConfigurationPortAdapterTest.java @@ -9,7 +9,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.FileWriter; import java.nio.file.Files; import java.nio.file.Path; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -26,7 +26,7 @@ import de.gecheckt.pdf.umbenenner.application.config.provider.AiProviderFamily; */ class PropertiesConfigurationPortAdapterTest { - private Function emptyEnvLookup; + private UnaryOperator emptyEnvLookup; @TempDir Path tempDir; @@ -84,7 +84,7 @@ class PropertiesConfigurationPortAdapterTest { void loadConfiguration_rejectsBlankApiKeyWhenEnvVarIsNull() throws Exception { Path configFile = createConfigFile("no-api-key.properties"); - Function envLookup = key -> null; + UnaryOperator envLookup = key -> null; PropertiesConfigurationPortAdapter adapter = new PropertiesConfigurationPortAdapter(envLookup, configFile); @@ -98,7 +98,7 @@ class PropertiesConfigurationPortAdapterTest { void loadConfiguration_rejectsBlankApiKeyWhenEnvVarIsEmpty() throws Exception { Path configFile = createConfigFile("no-api-key.properties"); - Function envLookup = key -> ""; + UnaryOperator envLookup = key -> ""; PropertiesConfigurationPortAdapter adapter = new PropertiesConfigurationPortAdapter(envLookup, configFile); @@ -112,7 +112,7 @@ class PropertiesConfigurationPortAdapterTest { void loadConfiguration_rejectsBlankApiKeyWhenEnvVarIsBlank() throws Exception { Path configFile = createConfigFile("no-api-key.properties"); - Function envLookup = key -> " "; + UnaryOperator envLookup = key -> " "; PropertiesConfigurationPortAdapter adapter = new PropertiesConfigurationPortAdapter(envLookup, configFile); @@ -126,7 +126,7 @@ class PropertiesConfigurationPortAdapterTest { void loadConfiguration_envVarOverridesPropertiesApiKey() throws Exception { Path configFile = createConfigFile("valid-config.properties"); - Function envLookup = key -> { + UnaryOperator envLookup = key -> { if (MultiProviderConfigurationParser.ENV_OPENAI_API_KEY.equals(key)) { return "env-api-key-override"; }