This is an automated email from the ASF dual-hosted git repository.

tilman pushed a commit to branch branch_2x
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/branch_2x by this push:
     new 95f96a01d TIKA-4397: refactor, as suggested by syedamisbahh
95f96a01d is described below

commit 95f96a01d4110712ec409296c5e55ab1ad1b5a64
Author: Tilman Hausherr <[email protected]>
AuthorDate: Fri Apr 11 20:07:46 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 d36e14a2d..dd69f1749 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
@@ -107,6 +107,15 @@ public class TikaConfig {
     private final Renderer renderer;
     private final MetadataFilter metadataFilter;
     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;
 
@@ -518,23 +527,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'",

Reply via email to