This is an automated email from the ASF dual-hosted git repository. tilman pushed a commit to branch branch_3x in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/branch_3x by this push: new b85ccf10b TIKA-4397: refactor, as suggested by syedamisbahh b85ccf10b is described below commit b85ccf10bb8b9c108f12bb871683a2f7b10689cf Author: Tilman Hausherr <til...@apache.org> AuthorDate: Fri Apr 11 20:07:21 2025 +0200 TIKA-4397: refactor, as suggested by syedamisbahh --- .../java/org/apache/tika/config/TikaConfig.java | 34 ++++++++++++---------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java b/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java index e667698e8..8137a7ad8 100644 --- a/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java +++ b/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java @@ -110,6 +110,15 @@ public class TikaConfig { private final MetadataFilter metadataFilter; private final MetadataListFilter metadataListFilter; private final AutoDetectParserConfig autoDetectParserConfig; + private static final Map<String, InitializableProblemHandler> strategyMap = new HashMap<>(); + + static { + strategyMap.put("", InitializableProblemHandler.DEFAULT); + strategyMap.put(InitializableProblemHandler.IGNORE.toString(), InitializableProblemHandler.IGNORE); + strategyMap.put(InitializableProblemHandler.INFO.toString(), InitializableProblemHandler.INFO); + strategyMap.put(InitializableProblemHandler.WARN.toString(), InitializableProblemHandler.WARN); + strategyMap.put(InitializableProblemHandler.THROW.toString(), InitializableProblemHandler.THROW); + } private static int MAX_JSON_STRING_FIELD_LENGTH = DEFAULT_MAX_JSON_STRING_FIELD_LENGTH; @@ -525,23 +534,18 @@ public class TikaConfig { return serviceLoader; } + /** + * Return an InitializableProblemHandler by name. + * + * @param initializableProblemHandler can be empty, 'ignore', 'info', 'warn' or 'throw', but never null. + * @return an InitializableProblemHandler + * @throws TikaConfigException if invalid name + */ private static InitializableProblemHandler getInitializableProblemHandler( String initializableProblemHandler) throws TikaConfigException { - if (initializableProblemHandler.isEmpty()) { - return InitializableProblemHandler.DEFAULT; - } - if (InitializableProblemHandler.IGNORE.toString() - .equalsIgnoreCase(initializableProblemHandler)) { - return InitializableProblemHandler.IGNORE; - } else if (InitializableProblemHandler.INFO.toString() - .equalsIgnoreCase(initializableProblemHandler)) { - return InitializableProblemHandler.INFO; - } else if (InitializableProblemHandler.WARN.toString() - .equalsIgnoreCase(initializableProblemHandler)) { - return InitializableProblemHandler.WARN; - } else if (InitializableProblemHandler.THROW.toString() - .equalsIgnoreCase(initializableProblemHandler)) { - return InitializableProblemHandler.THROW; + InitializableProblemHandler handler = strategyMap.get(initializableProblemHandler.toUpperCase(Locale.US)); + if (handler != null) { + return handler; } throw new TikaConfigException(String.format(Locale.US, "Couldn't parse non-null '%s'. Must be one of 'ignore', 'info', 'warn' or 'throw'",