You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2007/11/03 16:44:34 UTC

svn commit: r591637 - in /incubator/tika/trunk/src/main/java/org/apache/tika/mime: Magic.java MimeType.java MimeTypes.java

Author: jukka
Date: Sat Nov  3 08:44:33 2007
New Revision: 591637

URL: http://svn.apache.org/viewvc?rev=591637&view=rev
Log:
TIKA-87 - MimeTypes should allow modification of MIME types
    - Made Magic Comparable

Modified:
    incubator/tika/trunk/src/main/java/org/apache/tika/mime/Magic.java
    incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeType.java
    incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeTypes.java

Modified: incubator/tika/trunk/src/main/java/org/apache/tika/mime/Magic.java
URL: http://svn.apache.org/viewvc/incubator/tika/trunk/src/main/java/org/apache/tika/mime/Magic.java?rev=591637&r1=591636&r2=591637&view=diff
==============================================================================
--- incubator/tika/trunk/src/main/java/org/apache/tika/mime/Magic.java (original)
+++ incubator/tika/trunk/src/main/java/org/apache/tika/mime/Magic.java Sat Nov  3 08:44:33 2007
@@ -22,7 +22,7 @@
  * 
  * 
  */
-class Magic implements Clause {
+class Magic implements Clause, Comparable<Magic> {
 
     private MimeType type = null;
 
@@ -67,4 +67,13 @@
         buf.append("[").append(priority).append("/").append(clause).append("]");
         return buf.toString();
     }
+
+    public int compareTo(Magic o) {
+        int diff = priority - o.priority;
+        if (diff == 0) {
+            diff = size() - o.size();
+        }
+        return diff;
+    }
+
 }

Modified: incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeType.java
URL: http://svn.apache.org/viewvc/incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeType.java?rev=591637&r1=591636&r2=591637&view=diff
==============================================================================
--- incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeType.java (original)
+++ incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeType.java Sat Nov  3 08:44:33 2007
@@ -354,7 +354,6 @@
             return;
         }
         magics.add(magic);
-        Collections.sort(magics, MimeTypes.MAGICS_COMPARATOR);
     }
 
     int getMinLength() {

Modified: incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeTypes.java
URL: http://svn.apache.org/viewvc/incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeTypes.java?rev=591637&r1=591636&r2=591637&view=diff
==============================================================================
--- incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeTypes.java (original)
+++ incubator/tika/trunk/src/main/java/org/apache/tika/mime/MimeTypes.java Sat Nov  3 08:44:33 2007
@@ -25,8 +25,6 @@
 import java.util.Map;
 import java.util.HashMap;
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 import java.util.SortedSet;
 import java.util.TreeSet;
@@ -57,7 +55,7 @@
     private Patterns patterns = new Patterns();
 
     /** List of all registered magics */
-    private ArrayList<Magic> magics = new ArrayList<Magic>();
+    private SortedSet<Magic> magics = new TreeSet<Magic>();
 
     /** List of all registered rootXML */
     private SortedSet<MimeType> xmls = new TreeSet<MimeType>();
@@ -65,21 +63,6 @@
     private Map<String, List<MimeType>> unsolvedDeps =
         new HashMap<String, List<MimeType>>();
 
-    /**
-     * A comparator used to sort the mime types based on their magics (it is
-     * sorted first on the magic's priority, then on the magic's size).
-     */
-    final static Comparator<Magic> MAGICS_COMPARATOR = new Comparator<Magic>() {
-        public int compare(Magic m1, Magic m2) {
-            int p1 = m1.getPriority();
-            int p2 = m2.getPriority();
-            if (p1 != p2) {
-                return p2 - p1;
-            }
-            return m2.size() - m1.size();
-        }
-    };
-
     /** The minimum length of data to provide to check all MimeTypes */
     private int minLength = 0;
 
@@ -374,7 +357,6 @@
         if (type.hasMagic()) {
             magics.addAll(Arrays.asList(type.getMagics()));
         }
-        Collections.sort(magics, MAGICS_COMPARATOR);
 
         // Update the xml (xmlRoot) index...
         if (type.hasRootXML()) {