Author: nick
Date: Sun Mar 1 17:48:48 2015
New Revision: 1663135
URL: http://svn.apache.org/r1663135
Log:
Add getChildTypes(MediaType) support to MediaTypeRegistry, to allow you to
navigate the hierarchy the other way too
Modified:
tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaTypeRegistry.java
tika/trunk/tika-core/src/test/java/org/apache/tika/mime/MimeTypesReaderTest.java
Modified:
tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaTypeRegistry.java
URL:
http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaTypeRegistry.java?rev=1663135&r1=1663134&r2=1663135&view=diff
==============================================================================
---
tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaTypeRegistry.java
(original)
+++
tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaTypeRegistry.java
Sun Mar 1 17:48:48 2015
@@ -82,6 +82,23 @@ public class MediaTypeRegistry implement
}
return aliases;
}
+
+ /**
+ * Returns the set of known children of the given canonical media type
+ *
+ * @since Apache Tika 1.8
+ * @param type canonical media type
+ * @return known children
+ */
+ public SortedSet<MediaType> getChildTypes(MediaType type) {
+ SortedSet<MediaType> children = new TreeSet<MediaType>();
+ for (Map.Entry<MediaType, MediaType> entry : inheritance.entrySet()) {
+ if (entry.getValue().equals(type)) {
+ children.add(entry.getKey());
+ }
+ }
+ return children;
+ }
public void addType(MediaType type) {
registry.put(type, type);
Modified:
tika/trunk/tika-core/src/test/java/org/apache/tika/mime/MimeTypesReaderTest.java
URL:
http://svn.apache.org/viewvc/tika/trunk/tika-core/src/test/java/org/apache/tika/mime/MimeTypesReaderTest.java?rev=1663135&r1=1663134&r2=1663135&view=diff
==============================================================================
---
tika/trunk/tika-core/src/test/java/org/apache/tika/mime/MimeTypesReaderTest.java
(original)
+++
tika/trunk/tika-core/src/test/java/org/apache/tika/mime/MimeTypesReaderTest.java
Sun Mar 1 17:48:48 2015
@@ -20,6 +20,7 @@ import java.io.ByteArrayInputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
import org.apache.tika.config.TikaConfig;
import org.apache.tika.metadata.Metadata;
@@ -155,6 +156,11 @@ public class MimeTypesReaderTest {
MediaType mtBTree =
this.mimeTypes.getMediaTypeRegistry().getSupertype(mtBTree4);
assertEquals("application/x-berkeley-db; format=btree",
mtBTree.toString());
+ // Parent has several children, for versions 2 through 4
+ Set<MediaType> mtBTreeChildren =
this.mimeTypes.getMediaTypeRegistry().getChildTypes(mtBTree);
+ assertTrue(mtBTreeChildren.toString(), mtBTreeChildren.size() >= 3);
+ assertTrue(mtBTreeChildren.toString(),
mtBTreeChildren.contains(mtBTree4));
+
// Parent of that has none
MediaType mtBD =
this.mimeTypes.getMediaTypeRegistry().getSupertype(mtBTree);
assertEquals("application/x-berkeley-db", mtBD.toString());