You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ma...@apache.org on 2010/09/12 04:39:07 UTC

svn commit: r996238 - /tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java

Author: mattmann
Date: Sun Sep 12 02:39:07 2010
New Revision: 996238

URL: http://svn.apache.org/viewvc?rev=996238&view=rev
Log:
- fix for TIKA-512 Print the supported Metadata models and their associated met keys in tika-app

Modified:
    tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java

Modified: tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java?rev=996238&r1=996237&r2=996238&view=diff
==============================================================================
--- tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java (original)
+++ tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java Sun Sep 12 02:39:07 2010
@@ -23,13 +23,12 @@ import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.io.UnsupportedEncodingException;
 import java.io.Writer;
+import java.lang.reflect.Field;
 import java.net.URL;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.Map.Entry;
@@ -158,7 +157,12 @@ public class TikaCLI {
         } else if (arg.equals("--list-parser-detail") || arg.equals("--list-parser-details")) {
             pipeMode = false;
             displayParsers(true);
-        } else if (arg.startsWith("-e")) {
+        } 
+          else if(arg.equals("--list-met-models")){
+            pipeMode = false;
+            displayMetModels();
+        }
+          else if (arg.startsWith("-e")) {
             encoding = arg.substring("-e".length());
         } else if (arg.startsWith("--encoding=")) {
             encoding = arg.substring("--encoding=".length());
@@ -219,6 +223,8 @@ public class TikaCLI {
         out.println("         List the available document parsers");
         out.println("    --list-parser-details");
         out.println("         List the available document parsers, and their supported mime types");
+        out.println("    --list-met-models");
+        out.println("         List the available metadata models, and their supported keys");
         out.println();
         out.println("Description:");
         out.println("    Apache Tika will parse the file(s) specified on the");
@@ -237,6 +243,35 @@ public class TikaCLI {
         out.println("    from a normal file explorer to the GUI window to");
         out.println("    extract text content and metadata from the files.");
     }
+    
+    private void displayMetModels(){
+        PrintStream out = System.out;
+        Class[] modelClasses = Metadata.class.getInterfaces();
+        Arrays.sort(modelClasses, new Comparator<Class>() {
+        
+            public int compare(Class o1, Class o2) {
+                return o1.getName().compareTo(o2.getName());
+            }
+        });
+        
+        for(Class modelClass: modelClasses){
+            if(!modelClass.getSimpleName().contains("Tika")) // we don't care about internal Tika met classes
+                out.println(modelClass.getSimpleName());     // if we do, then we can take this conditional out
+            else continue;
+            Field[] keyFields = modelClass.getFields();
+            Arrays.sort(keyFields, new Comparator<Field>() {
+            
+                public int compare(Field o1, Field o2) {
+                    return o1.getName().compareTo(o2.getName());
+                }
+            });
+            
+            for(Field keyField: keyFields){
+                System.out.println(" "+keyField.getName());
+            }
+            
+        }
+    }
 
     private void displayParsers(boolean includeMimeTypes) {
         PrintStream out = System.out;