Author: dmeikle
Date: Tue Jan  8 22:57:03 2013
New Revision: 1430618

URL: http://svn.apache.org/viewvc?rev=1430618&view=rev
Log:
TIKA-1013: Added ability to check if a mime-type is already registered from 
Ryan McKinley

Modified:
    tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeTypes.java
    
tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/MimeTypesTest.java

Modified: tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeTypes.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeTypes.java?rev=1430618&r1=1430617&r2=1430618&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeTypes.java 
(original)
+++ tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MimeTypes.java Tue 
Jan  8 22:57:03 2013
@@ -286,6 +286,26 @@ public final class MimeTypes implements 
         }
     }
 
+    /**
+     * Returns the registered media type with the given name (or alias).
+     * 
+     * Unlike {@link #forName(String)}, this function will *not* create a new
+     * MimeType and register it
+     *
+     * @param name media type name (case-insensitive)
+     * @return the registered media type with the given name or alias
+     * @throws MimeTypeException if the given media type name is invalid
+     */
+    public MimeType getRegisteredMimeType(String name) throws 
MimeTypeException {
+        MediaType type = MediaType.parse(name);
+        if (type != null) {
+            MediaType normalisedType = registry.normalize(type);
+            return types.get(normalisedType);
+        } else {
+            throw new MimeTypeException("Invalid media type name: " + name);
+        }
+    }
+    
     public synchronized void setSuperType(MimeType type, MediaType parent) {
         registry.addSuperType(type.getType(), parent);
     }

Modified: 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/MimeTypesTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/MimeTypesTest.java?rev=1430618&r1=1430617&r2=1430618&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/MimeTypesTest.java 
(original)
+++ 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/MimeTypesTest.java 
Tue Jan  8 22:57:03 2013
@@ -55,6 +55,22 @@ public class MimeTypesTest extends TestC
         }
     }
 
+    public void testRegisteredMimes() throws MimeTypeException {
+        String dummy = "text/xxxxx";
+        assertEquals(text, types.getRegisteredMimeType("text/plain"));
+        assertNull(types.getRegisteredMimeType(dummy));
+        assertNotNull(types.forName(dummy));
+        assertEquals(dummy, types.forName("text/xxxxx").getType().toString());
+        assertEquals(dummy, 
types.getRegisteredMimeType("text/xxxxx").getType().toString());
+        
+        try {
+            types.forName("invalid");
+            fail("MimeTypeException not thrown on invalid type name");
+        } catch (MimeTypeException e) {
+            // expected
+        }
+    }
+
     public void testSuperType() throws MimeTypeException {
         assertNull(registry.getSupertype(OCTET_STREAM));
         assertEquals(OCTET_STREAM, registry.getSupertype(TEXT_PLAIN));


Reply via email to