Repository: tika Updated Branches: refs/heads/2.x f403a0832 -> a38c4271e
TIKA-1909 - Include a Proxy for EncodingDetectors. Project: http://git-wip-us.apache.org/repos/asf/tika/repo Commit: http://git-wip-us.apache.org/repos/asf/tika/commit/a38c4271 Tree: http://git-wip-us.apache.org/repos/asf/tika/tree/a38c4271 Diff: http://git-wip-us.apache.org/repos/asf/tika/diff/a38c4271 Branch: refs/heads/2.x Commit: a38c4271eb82e12a57f281eca3afa2edab33fae5 Parents: f403a08 Author: Bob Paulin <[email protected]> Authored: Sat Mar 26 21:10:08 2016 -0500 Committer: Bob Paulin <[email protected]> Committed: Sat Mar 26 21:10:08 2016 -0500 ---------------------------------------------------------------------- .../tika/detect/EncodingDetectorProxy.java | 40 ++++++++++++++++++++ 1 file changed, 40 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tika/blob/a38c4271/tika-core/src/main/java/org/apache/tika/detect/EncodingDetectorProxy.java ---------------------------------------------------------------------- diff --git a/tika-core/src/main/java/org/apache/tika/detect/EncodingDetectorProxy.java b/tika-core/src/main/java/org/apache/tika/detect/EncodingDetectorProxy.java new file mode 100644 index 0000000..d6a771d --- /dev/null +++ b/tika-core/src/main/java/org/apache/tika/detect/EncodingDetectorProxy.java @@ -0,0 +1,40 @@ +package org.apache.tika.detect; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; + +import org.apache.tika.config.LoadErrorHandler; +import org.apache.tika.metadata.Metadata; + +public class EncodingDetectorProxy implements EncodingDetector { + +private EncodingDetector detector; + + public EncodingDetectorProxy(String encodingDetectorClassName, ClassLoader loader) + { + this(encodingDetectorClassName, loader, LoadErrorHandler.IGNORE); + } + + public EncodingDetectorProxy(String encodingDetectorClassName, ClassLoader loader, LoadErrorHandler handler) + { + try + { + this.detector = (EncodingDetector)Class.forName(encodingDetectorClassName, true, loader).newInstance(); + } + catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) + { + handler.handleLoadError(encodingDetectorClassName, e); + } + } + + @Override + public Charset detect(InputStream input, Metadata metadata) throws IOException { + if(detector != null) + { + return detector.detect(input, metadata); + } + return null; + } + +}
