X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fmedia%2FMediaHandlerGeneric.java;h=d023b3dfb54eb8dc5641782c3807a4a28838c1d9;hb=63e0ee1fb8038eb6d8f0190cf38c3b3ab2727216;hp=69fa6b7a45e37d83d700ad5bdbecc30aa5c527d1;hpb=8b91e8d8bf4a31a88440a404e83238dcf32f8f4a;p=mir.git diff --git a/source/mircoders/media/MediaHandlerGeneric.java b/source/mircoders/media/MediaHandlerGeneric.java index 69fa6b7a..d023b3df 100755 --- a/source/mircoders/media/MediaHandlerGeneric.java +++ b/source/mircoders/media/MediaHandlerGeneric.java @@ -29,23 +29,20 @@ */ package mircoders.media; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.List; -import java.util.Vector; - -import javax.servlet.ServletContext; - import mir.config.MirPropertiesConfiguration; import mir.entity.Entity; import mir.log.LoggerWrapper; import mir.media.MediaExc; import mir.media.MediaFailure; -import mir.media.MediaHandler; -import mir.misc.FileUtil; import mir.misc.StringUtil; +import mir.session.UploadedFile; +import mir.util.FileFunctions; + +import javax.servlet.ServletContext; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; /** @@ -63,133 +60,121 @@ import mir.misc.StringUtil; *

* Of course it implements the MirMediaHandler interface. * - * @see mir.media.MirMediaHandler + * @see mir.media.MediaHandler * @author mh - * @version $Id: MediaHandlerGeneric.java,v 1.20.2.6 2004/01/18 17:30:58 zapata Exp $ + * @version $Id: MediaHandlerGeneric.java,v 1.20.2.7 2004/11/21 22:07:14 zapata Exp $ */ -public class MediaHandlerGeneric implements MediaHandler +public class MediaHandlerGeneric extends AbstractMediaHandler { - protected static MirPropertiesConfiguration configuration; - protected static String imageHost; - protected static String imageRoot; - - protected LoggerWrapper logger; - - static { - try { - configuration = MirPropertiesConfiguration.instance(); - } - catch (MirPropertiesConfiguration.PropertiesConfigExc e) { - } - imageHost = configuration.getString("Producer.Image.Host"); - imageRoot = configuration.getString("Producer.ImageRoot"); - } + protected static MirPropertiesConfiguration configuration = MirPropertiesConfiguration.instance(); - public MediaHandlerGeneric() { - logger = new LoggerWrapper("Media.Generic"); - } + protected LoggerWrapper logger = new LoggerWrapper("Media.Generic"); - public void store (InputStream in, Entity ent, Entity mediaTypeEnt ) throws MediaExc, MediaFailure { - String ext = mediaTypeEnt.getFieldValue("name"); - String mediaFname = ent.getId() + "." + ext; - String date = ent.getFieldValue("date"); - String datePath = StringUtil.webdbDate2path(date); - try { - long size = FileUtil.write(getStoragePath() + File.separator + datePath + - File.separator + mediaFname, in); - ent.setFieldValue("publish_path", datePath + mediaFname); - ent.setFieldValue("size", new Long(size).toString()); - ent.update(); - } - catch (Throwable e) { - logger.error("MediaHandlerGeneric.set: " + e.toString()); - throw new MediaFailure(e); - } + /** {@inheritDoc} */ + public void store(File aFile, Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure { + try { + FileFunctions.move(aFile, getStorageFile(aMedia, aMediaType)); + + aMedia.setFieldValue("publish_path", getRelativeStorageFile(aMedia, aMediaType)); + aMedia.setFieldValue("size", Long.toString(getStorageFile(aMedia, aMediaType).length())); + aMedia.update(); + } + catch (Throwable e) { + logger.error("MediaHandlerGeneric.set: " + e.toString()); + throw new MediaFailure(e); } + } - public void produce (Entity ent, Entity mediaTypeEnt ) throws MediaExc, MediaFailure { - //check first if the media file exist since produced - //location is also the storage location + /** {@inheritDoc} */ + public void store(UploadedFile anUploadedFile, Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure { + try { + anUploadedFile.writeToFile(getStorageFile(aMedia, aMediaType)); - String date = ent.getFieldValue("date"); - String datePath = StringUtil.webdbDate2path(date); - String relPath = datePath+ent.getId()+"."+mediaTypeEnt.getFieldValue("name"); - String fname = getStoragePath()+relPath; - if(! new File(fname).exists()) - throw new MediaExc("error in MirMediaHandler.produce(): " + relPath + " does not exist!"); + aMedia.setFieldValue("publish_path", getRelativeStorageFile(aMedia, aMediaType)); + aMedia.setFieldValue("size", Long.toString(getStorageFile(aMedia, aMediaType).length())); + aMedia.update(); } - - public InputStream getMedia (Entity ent, Entity mediaTypeEnt) throws MediaExc, MediaFailure { - String publishPath = ent.getFieldValue("publish_path"); - String fname = getStoragePath()+publishPath; - File f = new File(fname); - if(! f.exists()) - throw new MediaExc("error in MirMediaHandler.getMedia(): " + fname + " does not exist!"); - - BufferedInputStream inputStream; - try { - inputStream = new BufferedInputStream(new FileInputStream(f)); - } - catch (Throwable e) { - throw new MediaFailure("MediaHandlerGeneric.getMedia(): " + e.toString(), e); - } - - return inputStream; + catch (Throwable e) { + logger.error("MediaHandlerGeneric.set: " + e.toString()); + throw new MediaFailure(e); } + } + + /** {@inheritDoc} */ + public void store(InputStream anInputStream, Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure { + try { + FileFunctions.copy(anInputStream, getStorageFile(aMedia, aMediaType)); - public InputStream getThumbnail (Entity ent) throws MediaExc, MediaFailure { - return null; + aMedia.setFieldValue("publish_path", getRelativeStorageFile(aMedia, aMediaType)); + aMedia.setFieldValue("size", Long.toString(getStorageFile(aMedia, aMediaType).length())); + aMedia.update(); } + catch (Throwable e) { + logger.error("MediaHandlerGeneric.set: " + e.toString()); + throw new MediaFailure(e); + } + } + + public void produce(Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure { + if (!getStorageFile(aMedia, aMediaType).exists()) + throw new MediaExc("error in producing media:: " + getStorageFile(aMedia, aMediaType) + " does not exist!"); + } + + /** + * Get access to the raw media data by an {@link InputStream} + */ + public InputStream getMedia(Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure { + File file = getStorageFile(aMedia, aMediaType); + if (!file.exists()) + throw new MediaExc("error in MirMediaHandler.getMedia(): " + file + " does not exist!"); + + try { + return new BufferedInputStream(new FileInputStream(file)); + } + catch (Throwable e) { + throw new MediaFailure("MediaHandlerGeneric.getMedia(): " + e.toString(), e); + } + } - public String getThumbnailMimeType (Entity aMediaEntity, Entity aMediaType) throws MediaExc, MediaFailure { - ServletContext servletContext = MirPropertiesConfiguration.getContext(); - String fileName = aMediaEntity.getId()+"."+aMediaType.getFieldValue("name"); + public InputStream getThumbnail(Entity ent) throws MediaExc, MediaFailure { + return null; + } - return servletContext.getMimeType(fileName); - }; + public String getThumbnailMimeType(Entity aMediaEntity, Entity aMediaType) throws MediaExc, MediaFailure { + ServletContext servletContext = MirPropertiesConfiguration.getContext(); + String fileName = aMediaEntity.getId() + "." + aMediaType.getFieldValue("name"); - public String getStoragePath() - { - return configuration.getString("Producer.Media.Path"); - } + return servletContext.getMimeType(fileName); + }; - public String getIconStoragePath() - { - return configuration.getString("Producer.Image.IconPath"); - } + public String getStoragePath() { + return configuration.getString("Producer.Media.Path"); + } - public String getPublishHost() - { - return StringUtil.removeSlash(configuration.getString("Producer.Media.Host")); - } + public String getIconStoragePath() { + return configuration.getString("Producer.Image.IconPath"); + } - public String getTinyIconName() - { - return configuration.getString("Producer.Icon.TinyText"); - } + public String getPublishHost() { + return StringUtil.removeSlash(configuration.getString("Producer.Media.Host")); + } - public String getBigIconName() - { - return configuration.getString("Producer.Icon.BigText"); - } + public String getTinyIconName() { + return configuration.getString("Producer.Icon.TinyText"); + } - public String getIconAltName() - { - return "Generic media"; - } + public String getBigIconName() { + return configuration.getString("Producer.Icon.BigText"); + } - public List getURL(Entity ent, Entity mediaTypeEnt) - { - List theList = new Vector(); - theList.add(ent); - return theList; - } + public String getIconAltName() { + return "Generic media"; + } - public String getDescr( Entity mediaType) - { - return mediaType.getFieldValue("mime_type"); - } + public String getDescr(Entity mediaType) { + return mediaType.getFieldValue("mime_type"); + } }