import java.io.File;
import java.io.InputStream;
-import java.util.*;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.util.List;
+import java.util.Vector;
import mir.config.MirPropertiesConfiguration;
-import mir.config.MirPropertiesConfiguration.PropertiesConfigExc;
import mir.entity.Entity;
import mir.log.LoggerWrapper;
import mir.media.MediaExc;
import mir.media.MediaFailure;
-import mir.media.MirMedia;
+import mir.media.MediaHandler;
import mir.misc.FileUtil;
import mir.misc.StringUtil;
+import mir.session.UploadedFile;
+import mir.session.SessionExc;
import mircoders.entity.EntityImages;
/**
* written out to a file at the ProducerImages level.
* Remember that Handlers for specific image types, Gif, Jpeg, etc..
* should override it.
- * It implements the MirMedia interface.
+ * It implements the MirMediaHandler interface.
* <p>
* slowly starting to look better, a next step would be to have the
* representation stuff (WebdbImage) happen here.
* -mh 01.03.2002
*
- * @see mir.media.MirMedia
+ * @see mir.media.MediaHandler
* @author mh
- * @version $Id: MediaHandlerImages.java,v 1.24 2003/09/03 18:29:04 zapata Exp $
*/
-public abstract class MediaHandlerImages implements MirMedia
-{
- protected static MirPropertiesConfiguration configuration;
+public abstract class MediaHandlerImages extends AbstractMediaHandler implements MediaHandler {
+ protected static MirPropertiesConfiguration configuration = MirPropertiesConfiguration.instance();
protected static final String PNG = "PNG";
protected static final String JPEG = "JPEG";
protected LoggerWrapper logger;
- static {
- try {
- configuration = MirPropertiesConfiguration.instance();
- }
- catch (PropertiesConfigExc e) {
- throw new RuntimeException("Can't get configuration: " + e.getMessage());
- }
- }
-
abstract String getType();
public MediaHandlerImages() {
return inputStream;
}
- public void set(InputStream in, Entity ent, Entity mediaTypeEnt) throws MediaExc, MediaFailure {
+ public void store(UploadedFile anUploadedFile, Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure {
+ try {
+ store(anUploadedFile.getInputStream(), aMedia, aMediaType);
+ }
+ catch (SessionExc e) {
+ throw new MediaFailure(e);
+ }
+ }
+ public void store(InputStream in, Entity ent, Entity mediaTypeEnt) throws MediaExc, MediaFailure {
try {
((EntityImages)ent).setImage(in, getType());
}
catch (Throwable e) {
- logger.error("MediaHandlerImages.set: "+e.getMessage());
- e.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));
+ logger.error("MediaHandlerImages.store: "+e.toString());
+ e.printStackTrace(logger.asPrintWriter(LoggerWrapper.ERROR_MESSAGE));
+
+ throw new MediaExc("A problem has occurred processing the media file: " + e.toString());
+ }
+ }
+ public void store(File aFile, Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure {
+ try {
+ store(new FileInputStream(aFile), aMedia, aMediaType);
+ }
+ catch (FileNotFoundException e) {
throw new MediaFailure(e);
}
}
public void produce(Entity ent, Entity mediaTypeEnt) throws MediaExc, MediaFailure {
- String date = ent.getValue("date");
+ String date = ent.getFieldValue("date");
String datePath = StringUtil.webdbDate2path(date);
- String ext = "."+mediaTypeEnt.getValue("name");
+ String ext = "."+mediaTypeEnt.getFieldValue("name");
String filepath = datePath+ent.getId()+ext;
String iconFilePath = configuration.getString("Producer.StorageRoot")
+getIconStoragePath() + filepath;
String productionFilePath = getStoragePath() + File.separator + filepath;
- if (ent.getValue("icon_data")!= null &&
- ent.getValue("image_data")!= null) {
+ if (ent.getFieldValue("icon_data")!= null &&
+ ent.getFieldValue("image_data")!= null) {
// make icon
try {
- InputStream in = ((EntityImages)ent).getIcon();
+ InputStream in = ((EntityImages) ent).getIcon();
FileUtil.write(iconFilePath, in);
in = ((EntityImages)ent).getImage();
FileUtil.write(productionFilePath, in);
- ent.setValueForProperty("icon_path",getIconStoragePath()+filepath);
- ent.setValueForProperty("publish_path",filepath);
+ ent.setFieldValue("icon_path",getIconStoragePath()+filepath);
+ ent.setFieldValue("publish_path",filepath);
ent.update();
}
catch (Throwable e) {
}
}
-
- public InputStream getIcon(Entity ent) throws MediaExc, MediaFailure {
+ public InputStream getThumbnail(Entity ent) throws MediaExc, MediaFailure {
InputStream in;
try {
- in = ((EntityImages)ent).getIcon();
+ in = ((EntityImages) ent).getIcon();
}
catch (Throwable e) {
logger.error("MediaHandlerImages.getIcon: " + e.toString());
return "Image";
}
- public boolean isVideo() {
- return false;
- }
-
- public boolean isAudio() {
- return false;
- }
-
- public boolean isImage () {
- return true;
- }
-
public String getDescr(Entity mediaType) {
return "image/jpeg";
}