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