From ae541e6fdff92aee02abb14719a427fcdb64b5cb Mon Sep 17 00:00:00 2001 From: RatzzFatzz Date: Sat, 6 Dec 2025 20:16:37 +0100 Subject: [PATCH] Improve attribute config converter --- .../config/InputConfig.java | 4 +- .../AttributeConfigConverter.java | 38 +++++++------------ .../AttributeConfigConverterTest.java | 2 +- 3 files changed, 16 insertions(+), 28 deletions(-) rename src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/{ => converter}/AttributeConfigConverter.java (56%) rename src/test/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/{ => converter}/AttributeConfigConverterTest.java (95%) diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/InputConfig.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/InputConfig.java index e0f70c0..797b14c 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/InputConfig.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/InputConfig.java @@ -1,13 +1,11 @@ package at.pcgamingfreaks.mkvaudiosubtitlechanger.config; +import at.pcgamingfreaks.mkvaudiosubtitlechanger.config.converter.AttributeConfigConverter; import at.pcgamingfreaks.mkvaudiosubtitlechanger.config.validation.ValidFile; import at.pcgamingfreaks.mkvaudiosubtitlechanger.config.validation.ValidMkvToolNix; import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.AttributeConfig; import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.MkvToolNix; import at.pcgamingfreaks.mkvaudiosubtitlechanger.util.FileUtils; -import at.pcgamingfreaks.mkvaudiosubtitlechanger.util.ValidationUtil; -import jakarta.validation.ConstraintViolation; -import jakarta.validation.Validator; import jakarta.validation.constraints.Min; import lombok.AccessLevel; import lombok.Getter; diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/AttributeConfigConverter.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/converter/AttributeConfigConverter.java similarity index 56% rename from src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/AttributeConfigConverter.java rename to src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/converter/AttributeConfigConverter.java index 927b6cf..1966828 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/AttributeConfigConverter.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/config/converter/AttributeConfigConverter.java @@ -1,15 +1,17 @@ -package at.pcgamingfreaks.mkvaudiosubtitlechanger.config; +package at.pcgamingfreaks.mkvaudiosubtitlechanger.config.converter; import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.AttributeConfig; import picocli.CommandLine; +import java.util.regex.Matcher; import java.util.regex.Pattern; import static at.pcgamingfreaks.mkvaudiosubtitlechanger.util.LanguageValidatorUtil.isLanguageValid; public class AttributeConfigConverter implements CommandLine.ITypeConverter { - private static final String SEPARATOR = ":"; - private static final Pattern PATTERN = Pattern.compile("^.{3}:.{3}$"); + private static final String AUDIO_GROUP = "audio"; + private static final String SUB_GROUP = "sub"; + private static final Pattern PATTERN = Pattern.compile(String.format("^(?<%s>.{3}):(?<%s>.{3})$", AUDIO_GROUP, SUB_GROUP)); /** * Converts the input string into an AttributeConfig object. @@ -20,38 +22,26 @@ public class AttributeConfigConverter implements CommandLine.ITypeConverter