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 2009/11/27 15:59:12 UTC

svn commit: r884888 - /lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeType.java

Author: jukka
Date: Fri Nov 27 14:59:11 2009
New Revision: 884888

URL: http://svn.apache.org/viewvc?rev=884888&view=rev
Log:
TIKA-321: Optimize type detection speed

Reduce the memory overhead of MimeType by getting rid of two unused TreeSets per instance

Modified:
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeType.java

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeType.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeType.java?rev=884888&r1=884887&r2=884888&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeType.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeType.java Fri Nov 27 14:59:11 2009
@@ -16,11 +16,7 @@
  */
 package org.apache.tika.mime;
 
-// JDK imports
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.SortedSet;
-import java.util.TreeSet;
 
 /**
  * Internet media type.
@@ -86,19 +82,9 @@
      */
     private MimeType superType = null;
 
-    /**
-     * The child types of this media type.
-     */
-    private final SortedSet<MimeType> subTypes = new TreeSet<MimeType>();
-
     /** The magics associated to this Mime-Type */
     private final ArrayList<Magic> magics = new ArrayList<Magic>();
 
-    /**
-     * Lower case alias names of this media type.
-     */
-    private final SortedSet<String> aliases = new TreeSet<String>();
-
     /** The root-XML associated to this Mime-Type */
     private final ArrayList<RootXML> rootXML = new ArrayList<RootXML>();
 
@@ -161,21 +147,14 @@
                     "Media type can not inherit its descendant: " + type);
         } else if (superType == null) {
             superType = type;
-            superType.subTypes.add(this);
         } else if (type.isDescendantOf(superType)) {
-            superType.subTypes.remove(this);
             superType = type;
-            superType.subTypes.add(this);
         } else {
             throw new MimeTypeException(
                     "Conflicting media type inheritance: " + type);
         }
     }
 
-    public SortedSet<MimeType> getSubTypes() {
-        return Collections.unmodifiableSortedSet(subTypes);
-    }
-
     public boolean isDescendantOf(MimeType type) {
         if (type == null) {
             throw new IllegalArgumentException("MimeType is missing");
@@ -212,16 +191,6 @@
     }
 
     /**
-     * Returns the aliases of this media type. The returned set is
-     * an immutable view of the set.
-     *
-     * @return media type aliases, unmodifiable, not null
-     */
-    public SortedSet<String> getAliases() {
-        return Collections.unmodifiableSortedSet(aliases);
-    }
-
-    /**
      * Adds an alias name for this media type.
      *
      * @param alias media type alias (case insensitive)
@@ -231,9 +200,8 @@
     public void addAlias(String alias) throws MimeTypeException {
         if (isValid(alias)) {
             alias = alias.toLowerCase();
-            if (!name.equals(alias) && !aliases.contains(alias)) {
+            if (!name.equals(alias)) {
                 registry.addAlias(this, alias);
-                aliases.add(alias);
             }
         } else {
             throw new MimeTypeException("Invalid media type alias: " + alias);