Author: jukka
Date: Fri Sep 25 21:26:53 2009
New Revision: 819029

URL: http://svn.apache.org/viewvc?rev=819029&view=rev
Log:
TIKA-275: Parse context

Use the parsing context also in ParsingReader.

Modified:
    
lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java

Modified: 
lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java
URL: 
http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java?rev=819029&r1=819028&r2=819029&view=diff
==============================================================================
--- 
lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java
 (original)
+++ 
lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java
 Fri Sep 25 21:26:53 2009
@@ -26,6 +26,8 @@
 import java.io.PipedWriter;
 import java.io.Reader;
 import java.io.Writer;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.concurrent.Executor;
 
 import org.apache.tika.metadata.Metadata;
@@ -69,6 +71,8 @@
      */
     private final Metadata metadata;
 
+    private final Map<String, Object> context;
+
     /**
      * An exception (if any) thrown by the parsing thread.
      */
@@ -133,9 +137,9 @@
      * @throws IOException if the document can not be parsed
      */
     public ParsingReader(
-            Parser parser, InputStream stream, final Metadata metadata)
-            throws IOException {
-        this(parser, stream, metadata, new Executor() {
+            Parser parser, InputStream stream, final Metadata metadata,
+            Map<String, Object> context) throws IOException {
+        this(parser, stream, metadata, context, new Executor() {
             public void execute(Runnable command) {
                 String name = metadata.get(Metadata.RESOURCE_NAME_KEY);
                 if (name != null) {
@@ -161,13 +165,14 @@
      * @param parser parser instance
      * @param stream binary stream
      * @param metadata document metadata
+     * @param context parsing context
      * @param executor executor for the parsing task
      * @throws IOException if the document can not be parsed
      * @since Apache Tika 0.4
      */
     public ParsingReader(
             Parser parser, InputStream stream, Metadata metadata,
-            Executor executor) throws IOException {
+            Map<String, Object> context, Executor executor) throws IOException 
{
         this.parser = parser;
         PipedReader pipedReader = new PipedReader();
         this.reader = new BufferedReader(pipedReader);
@@ -178,6 +183,7 @@
         }
         this.stream = stream;
         this.metadata = metadata;
+        this.context = context;
 
         executor.execute(new ParsingTask());
 
@@ -188,6 +194,27 @@
     }
 
     /**
+     * @deprecated This method will be removed in Apache Tika 1.0
+     * @see <a 
href="https://issues.apache.org/jira/browse/TIKA-275";>TIKA-275</a>
+     */
+    public ParsingReader(Parser parser, InputStream stream, Metadata metadata)
+            throws IOException {
+        this(parser, stream, metadata, new HashMap<String, Object>());
+        context.put(Parser.class.getName(), parser);
+    }
+
+    /**
+     * @deprecated This method will be removed in Apache Tika 1.0
+     * @see <a 
href="https://issues.apache.org/jira/browse/TIKA-275";>TIKA-275</a>
+     */
+    public ParsingReader(
+            Parser parser, InputStream stream, Metadata metadata,
+            Executor executor) throws IOException {
+        this(parser, stream, metadata, new HashMap<String, Object>(), 
executor);
+        context.put(Parser.class.getName(), parser);
+    }
+
+    /**
      * The background parsing task.
      */
     private class ParsingTask implements Runnable {
@@ -201,7 +228,7 @@
         public void run() {
             try {
                 ContentHandler handler = new BodyContentHandler(writer);
-                parser.parse(stream, handler, metadata);
+                parser.parse(stream, handler, metadata, context);
             } catch (Throwable t) {
                 throwable = t;
             }


Reply via email to