You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ni...@apache.org on 2011/10/29 04:20:31 UTC

svn commit: r1190736 - in /tika/trunk/tika-parsers/src: main/java/org/apache/tika/parser/odf/OpenDocumentMetaParser.java main/java/org/apache/tika/parser/xml/AttributeMetadataHandler.java test/java/org/apache/tika/parser/odf/ODFParserTest.java

Author: nick
Date: Sat Oct 29 02:20:31 2011
New Revision: 1190736

URL: http://svn.apache.org/viewvc?rev=1190736&view=rev
Log:
TIKA-764 Update OpenDocumentMetaParser to use the common Metadata keys for document statistics, and remove use of a deprecated class in fetching the stats

Modified:
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentMetaParser.java
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/AttributeMetadataHandler.java
    tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentMetaParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentMetaParser.java?rev=1190736&r1=1190735&r2=1190736&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentMetaParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentMetaParser.java Sat Oct 29 02:20:31 2011
@@ -17,9 +17,11 @@
 package org.apache.tika.parser.odf;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.PagedText;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.xml.AttributeDependantMetadataHandler;
 import org.apache.tika.parser.xml.DcXMLParser;
+import org.apache.tika.parser.xml.AttributeMetadataHandler;
 import org.apache.tika.parser.xml.MetadataHandler;
 import org.apache.tika.sax.TeeContentHandler;
 import org.apache.tika.sax.xpath.CompositeMatcher;
@@ -37,8 +39,8 @@ public class OpenDocumentMetaParser exte
      */
     private static final long serialVersionUID = -8739250869531737584L;
    
-    private static final XPathParser META_XPATH = new XPathParser(
-            "meta", "urn:oasis:names:tc:opendocument:xmlns:meta:1.0");
+    private static final String META_NS = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0"; 
+    private static final XPathParser META_XPATH = new XPathParser("meta", META_NS);
 
     private static ContentHandler getMeta(
             ContentHandler ch, Metadata md, String name, String element) {
@@ -65,9 +67,9 @@ public class OpenDocumentMetaParser exte
     private static ContentHandler getStatistic(
             ContentHandler ch, Metadata md, String name, String attribute) {
         Matcher matcher =
-            META_XPATH.parse("//meta:document-statistic/@meta:" + attribute);
-        ContentHandler branch =
-            new MatchingContentHandler(new MetadataHandler(md, name), matcher);
+            META_XPATH.parse("//meta:document-statistic/@meta:"+attribute);
+        ContentHandler branch = new MatchingContentHandler(
+              new AttributeMetadataHandler(META_NS, attribute, md, name), matcher);
         return new TeeContentHandler(ch, branch);
     }
 
@@ -87,10 +89,18 @@ public class OpenDocumentMetaParser exte
         ch = getStatistic(ch, md, "nbTab", "table-count");
         ch = getStatistic(ch, md, "nbObject", "object-count");
         ch = getStatistic(ch, md, "nbImg", "image-count");
+        ch = getStatistic(ch, md, Metadata.PAGE_COUNT, "page-count");
+        ch = getStatistic(ch, md, PagedText.N_PAGES.getName(), "page-count");
+        ch = getStatistic(ch, md, Metadata.PARAGRAPH_COUNT, "paragraph-count");
+        ch = getStatistic(ch, md, Metadata.WORD_COUNT, "word-count");
+        ch = getStatistic(ch, md, Metadata.CHARACTER_COUNT, "character-count");
+        // Legacy Statistics Attributes, replaced with real keys above
+        // TODO remove these soon!
         ch = getStatistic(ch, md, "nbPage", "page-count");
         ch = getStatistic(ch, md, "nbPara", "paragraph-count");
         ch = getStatistic(ch, md, "nbWord", "word-count");
         ch = getStatistic(ch, md, "nbCharacter", "character-count");
+        // Normalise the rest
         ch = new NSNormalizerContentHandler(ch);
         return ch;
     }

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/AttributeMetadataHandler.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/AttributeMetadataHandler.java?rev=1190736&r1=1190735&r2=1190736&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/AttributeMetadataHandler.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/AttributeMetadataHandler.java Sat Oct 29 02:20:31 2011
@@ -32,7 +32,7 @@ public class AttributeMetadataHandler ex
 
     private final String localName;
 
-    protected AttributeMetadataHandler(
+    public AttributeMetadataHandler(
             String uri, String localName, Metadata metadata, String name) {
         super(metadata, name);
         this.uri = uri;

Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java?rev=1190736&r1=1190735&r2=1190736&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java Sat Oct 29 02:20:31 2011
@@ -83,6 +83,14 @@ public class ODFParserTest extends TikaT
              assertEquals(
                    "NeoOffice/2.2$Unix OpenOffice.org_project/680m18$Build-9161",
                    metadata.get("generator"));
+             
+             // Check the document statistics
+             assertEquals("1", metadata.get(Metadata.PAGE_COUNT));
+             assertEquals("1", metadata.get(Metadata.PARAGRAPH_COUNT));
+             assertEquals("14", metadata.get(Metadata.WORD_COUNT));
+             assertEquals("78", metadata.get(Metadata.CHARACTER_COUNT));
+             
+             // Check the old style statistics (these will be removed shortly)
              assertEquals("0", metadata.get("nbTab"));
              assertEquals("0", metadata.get("nbObject"));
              assertEquals("0", metadata.get("nbImg"));
@@ -140,6 +148,10 @@ public class ODFParserTest extends TikaT
            assertEquals("true", metadata.get("custom:Info 4"));
            
            // No statistics present
+           assertEquals(null, metadata.get(Metadata.PAGE_COUNT));
+           assertEquals(null, metadata.get(Metadata.PARAGRAPH_COUNT));
+           assertEquals(null, metadata.get(Metadata.WORD_COUNT));
+           assertEquals(null, metadata.get(Metadata.CHARACTER_COUNT));
            assertEquals(null, metadata.get("nbTab"));
            assertEquals(null, metadata.get("nbObject"));
            assertEquals(null, metadata.get("nbImg"));
@@ -190,7 +202,13 @@ public class ODFParserTest extends TikaT
            assertEquals(null, metadata.get("custom:Info 3"));
            assertEquals(null, metadata.get("custom:Info 4"));
            
-           // No statistics present
+           // Check the document statistics
+           assertEquals("2", metadata.get(Metadata.PAGE_COUNT));
+           assertEquals("13", metadata.get(Metadata.PARAGRAPH_COUNT));
+           assertEquals("54", metadata.get(Metadata.WORD_COUNT));
+           assertEquals("351", metadata.get(Metadata.CHARACTER_COUNT));
+           
+           // Check the old style statistics (these will be removed shortly)
            assertEquals("0", metadata.get("nbTab"));
            assertEquals("2", metadata.get("nbObject"));
            assertEquals("0", metadata.get("nbImg"));