package mircoders.module;
+import java.util.List;
+
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.util.JDBCStringRoutines;
import mir.util.StringRoutines;
+import mir.storage.DatabaseExc;
import mircoders.storage.DatabaseMediaType;
-import java.util.List;
-
public class ModuleMediaType extends AbstractModule {
static LoggerWrapper logger = new LoggerWrapper("Module.Content");
super(DatabaseMediaType.getInstance());
}
- 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+"/*")+"'");
- }
- if (mediaTypes.size() == 0) {
- mediaTypes = DatabaseMediaType.getInstance().selectByWhereClause("mime_type = '"+JDBCStringRoutines.escapeStringLiteral("*/*")+"'");
- }
- if (mediaTypes.size() == 0) {
- throw new UnsupportedMimeTypeExc("Unsupported mimetype: " + aMimeType, aMimeType);
- }
-
- return (Entity) mediaTypes.elementAt(0);
- }
-
- public Entity findMediaTypeForExtension(String anExtension) throws ModuleExc, ModuleFailure {
- EntityList mediaTypes = DatabaseMediaType.getInstance().selectByWhereClause("name = '"+JDBCStringRoutines.escapeStringLiteral(anExtension)+"'");
-
- if (mediaTypes.size() == 0) {
- try {
- return findMediaTypeForMimeType("*/*");
+ try {
+ mediaTypes = DatabaseMediaType.getInstance().selectByWhereClause("mime_type = '"+JDBCStringRoutines.escapeStringLiteral(aMimeType)+"'");
+ if (mediaTypes.size() == 0) {
+ mediaTypes = DatabaseMediaType.getInstance().selectByWhereClause("mime_type = '"+JDBCStringRoutines.escapeStringLiteral(mimeTypeMajor+"/*")+"'");
}
- catch (UnsupportedMimeTypeExc e) {
- throw new UnsupportedMimeTypeExc("Unsupported media extension: " + anExtension, anExtension);
+ if (mediaTypes.size() == 0) {
+ return null;
}
}
- else {
- return (Entity) mediaTypes.elementAt(0);
+ catch (DatabaseExc e) {
+ return null;
}
- }
- public static class MimeTypeExc extends ModuleExc {
- private String mimeType;
+ return mediaTypes.elementAt(0);
+ }
- 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