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()) {