Author: nick
Date: Mon Jun  8 13:55:16 2015
New Revision: 1684187

URL: http://svn.apache.org/r1684187
Log:
Improve how the Tika CLI reports decorated parsers in --list-parsers

Modified:
    tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
    
tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.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=1684187&r1=1684186&r2=1684187&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 Mon Jun  
8 13:55:16 2015
@@ -702,12 +702,20 @@ public class TikaCLI {
     }
      
     private void displayParser(Parser p, boolean includeMimeTypes, boolean 
apt, int i) {
+        String decorated = null;
+        if (p instanceof ParserDecorator) {
+            ParserDecorator pd = (ParserDecorator)p;
+            decorated = " (Wrapped by " + pd.getDecorationName() + ")";
+            p = pd.getWrappedParser();
+        }
+        
         boolean isComposite = (p instanceof CompositeParser);
-        String name = (p instanceof ParserDecorator) ?
-                      ((ParserDecorator) 
p).getWrappedParser().getClass().getName() :
-                      p.getClass().getName();
-        if (apt){
+        String name = p.getClass().getName();
+                      
+        if (apt) {
             name = name.substring(0, name.lastIndexOf(".") + 1) + "{{{./api/" 
+ name.replace(".", "/") + "}" + name.substring(name.lastIndexOf(".") + 1) + 
"}}";
+        } else if (decorated != null) {
+            name += decorated;
         }
         if ((apt && !isComposite) || !apt) {    // Don't display Composite 
parsers in the apt output.
             System.out.println(indent(i) + ((apt) ? "* " : "") + name + 
(isComposite ? " (Composite Parser):" : ""));

Modified: 
tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.java?rev=1684187&r1=1684186&r2=1684187&view=diff
==============================================================================
--- 
tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.java 
(original)
+++ 
tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.java 
Mon Jun  8 13:55:16 2015
@@ -56,6 +56,10 @@ public class ParserDecorator extends Abs
             public Set<MediaType> getSupportedTypes(ParseContext context) {
                 return types;
             }
+            @Override
+            public String getDecorationName() {
+                return "With Types";
+            }            
         };
     }
 
@@ -81,6 +85,10 @@ public class ParserDecorator extends Abs
                 // Return whatever is left
                 return parserTypes;
             }
+            @Override
+            public String getDecorationName() {
+                return "Without Types";
+            }            
         };
     }
     
@@ -125,6 +133,10 @@ public class ParserDecorator extends Abs
                     tstream.reset();
                 }
             }
+            @Override
+            public String getDecorationName() {
+                return "With Fallback";
+            }            
         };
     }
 
@@ -163,6 +175,12 @@ public class ParserDecorator extends Abs
         parser.parse(stream, handler, metadata, context);
     }
 
+    /**
+     * @return A name/description of the decoration, or null if none available
+     */
+    public String getDecorationName() {
+        return null;
+    }
 
     /**
      * Gets the parser wrapped by this ParserDecorator


Reply via email to