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));