]> source.dussan.org Git - poi.git/commitdiff
Last bit of reflection - get back to the full OOXML-enabled factory if we can
authorNick Burch <nick@apache.org>
Mon, 11 Jul 2016 22:57:42 +0000 (22:57 +0000)
committerNick Burch <nick@apache.org>
Mon, 11 Jul 2016 22:57:42 +0000 (22:57 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1752228 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/extractor/OLE2ExtractorFactory.java

index 52a0bf12f8211593d7666ce877f26b0276d1f7a9..d1577898f1ca4354fc52c65c11497daf0f5b5b0d 100644 (file)
@@ -126,8 +126,15 @@ public class OLE2ExtractorFactory {
     public static POITextExtractor createExtractor(InputStream input) throws IOException {
         Class<?> cls = getOOXMLClass();
         if (cls != null) {
-            // TODO Reflection
-            throw new IllegalArgumentException("TODO Reflection");
+            // Use Reflection to get us the full OOXML-enabled version
+            try {
+                Method m = cls.getDeclaredMethod("createExtractor", InputStream.class);
+                return (POITextExtractor)m.invoke(null, input);
+            } catch (IllegalArgumentException iae) {
+                throw iae;
+            } catch (Exception e) {
+                throw new IllegalArgumentException("Error creating Extractor for InputStream", e);
+            }
         } else {
             // Best hope it's OLE2....
             return createExtractor(new NPOIFSFileSystem(input));