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