cleanup / abuse system fix / prepping for a release
[mir.git] / source / mircoders / module / ModuleMediaType.java
index b6d5dad..57887a8 100755 (executable)
@@ -36,67 +36,58 @@ import mir.entity.Entity;
 import mir.entity.EntityList;
 import mir.log.LoggerWrapper;
 import mir.module.AbstractModule;
-import mir.module.ModuleExc;
-import mir.module.ModuleFailure;
-import mir.storage.StorageObject;
 import mir.util.JDBCStringRoutines;
 import mir.util.StringRoutines;
+import mir.storage.DatabaseExc;
 import mircoders.storage.DatabaseMediaType;
 
 public class ModuleMediaType extends AbstractModule {
   static LoggerWrapper logger = new LoggerWrapper("Module.Content");
 
   public ModuleMediaType() {
-    this (DatabaseMediaType.getInstance());
+    super(DatabaseMediaType.getInstance());
   }
 
-  public ModuleMediaType(StorageObject aStorage) {
-    this.theStorage = aStorage;
-  }
-
-  public Entity findMediaTypeForMimeType(String aMimeType) throws ModuleExc, ModuleFailure {
+  public Entity findMediaTypeForMimeType(String aMimeType) {
     List contentTypeParts = StringRoutines.splitString(aMimeType, "/");
 
     if (contentTypeParts.size()!=2) {
-      throw new InvalidMimeTypeExc("Invalid mimetype: " + aMimeType, aMimeType);
+      return null;
     }
     String mimeTypeMajor = (String) contentTypeParts.get(0);
 
     EntityList mediaTypes;
 
-    mediaTypes = DatabaseMediaType.getInstance().selectByWhereClause("mime_type = '"+JDBCStringRoutines.escapeStringLiteral(aMimeType)+"'");
-    if (mediaTypes.size() == 0) {
-      mediaTypes = DatabaseMediaType.getInstance().selectByWhereClause("mime_type = '"+JDBCStringRoutines.escapeStringLiteral(mimeTypeMajor+"/*")+"'");
+    try {
+      mediaTypes = DatabaseMediaType.getInstance().selectByWhereClause("mime_type = '"+JDBCStringRoutines.escapeStringLiteral(aMimeType)+"'");
+      if (mediaTypes.size() == 0) {
+        mediaTypes = DatabaseMediaType.getInstance().selectByWhereClause("mime_type = '"+JDBCStringRoutines.escapeStringLiteral(mimeTypeMajor+"/*")+"'");
+      }
+      if (mediaTypes.size() == 0) {
+        return null;
+      }
     }
-    if (mediaTypes.size() == 0) {
-      throw new UnsupportedMimeTypeExc("Unsupported mimetype: " + aMimeType, aMimeType);
+    catch (DatabaseExc e) {
+      return null;
     }
 
-    return (Entity) mediaTypes.elementAt(0);
+    return mediaTypes.elementAt(0);
   }
 
-  public static class MimeTypeExc extends ModuleExc {
-    private String mimeType;
-
-    public MimeTypeExc(String aMessage, String aMimeType) {
-      super (aMessage);
-      mimeType = aMimeType;
-    }
+  public Entity findMediaTypeForExtension(String anExtension) {
+    EntityList mediaTypes;
 
-    public String getMimeType() {
-      return mimeType;
+    try {
+      mediaTypes = DatabaseMediaType.getInstance().selectByWhereClause(
+          "name = '"+JDBCStringRoutines.escapeStringLiteral(anExtension.toLowerCase())+"'");
     }
-  }
-
-  public static class UnsupportedMimeTypeExc extends MimeTypeExc {
-    public UnsupportedMimeTypeExc(String aMessage, String aMimeType) {
-      super(aMessage, aMimeType);
+    catch (DatabaseExc e) {
+      return null;
     }
-  }
 
-  public static class InvalidMimeTypeExc extends MimeTypeExc {
-    public InvalidMimeTypeExc(String aMessage, String aMimeType) {
-      super(aMessage, aMimeType);
+    if (mediaTypes.size() == 0) {
+      return null;
     }
+               return mediaTypes.elementAt(0);
   }
 }
\ No newline at end of file