X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fmedia%2FMediaHandlerGeneric.java;h=e06098823ddce75bfa319bf0ac15848122c88f70;hb=f4cf2435e11c6566ac3908b4c96d3c4ca70c17ec;hp=e8e66ca4347cc67bd9a5772c9b033b861b7dd41f;hpb=e44404fac09c8da04b5ef7874160cb91f8fc98a9;p=mir.git diff --git a/source/mircoders/media/MediaHandlerGeneric.java b/source/mircoders/media/MediaHandlerGeneric.java index e8e66ca4..e0609882 100755 --- a/source/mircoders/media/MediaHandlerGeneric.java +++ b/source/mircoders/media/MediaHandlerGeneric.java @@ -29,13 +29,6 @@ */ package mircoders.media; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; - -import javax.servlet.ServletContext; - import mir.config.MirPropertiesConfiguration; import mir.entity.Entity; import mir.log.LoggerWrapper; @@ -43,7 +36,12 @@ import mir.media.MediaExc; import mir.media.MediaFailure; import mir.misc.StringUtil; import mir.session.UploadedFile; -import mir.util.FileFunctions; +import mir.util.IORoutines; + +import javax.servlet.ServletContext; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; /** @@ -63,38 +61,22 @@ import mir.util.FileFunctions; * * @see mir.media.MediaHandler * @author mh - * @version $Id: MediaHandlerGeneric.java,v 1.20.2.8 2005/02/10 16:22:23 rhindes Exp $ + * @version $Id: MediaHandlerGeneric.java,v 1.20.2.10 2006/11/12 21:32:13 yossarian Exp $ */ -public class MediaHandlerGeneric extends AbstractMediaHandler -{ +public class MediaHandlerGeneric extends AbstractMediaHandler { protected static MirPropertiesConfiguration configuration = MirPropertiesConfiguration.instance(); protected LoggerWrapper logger = new LoggerWrapper("Media.Generic"); /** {@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); - } - } - - /** {@inheritDoc} */ public void store(UploadedFile anUploadedFile, Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure { try { - anUploadedFile.writeToFile(getStorageFile(aMedia, aMediaType)); - - aMedia.setFieldValue("publish_path", getRelativeStorageFile(aMedia, aMediaType)); - aMedia.setFieldValue("size", Long.toString(getStorageFile(aMedia, aMediaType).length())); + anUploadedFile.writeToFile(getMediaStorageFile(aMedia, aMediaType)); + aMedia.setFieldValue("publish_path", getRelativeMediaStoragePath(aMedia, aMediaType)); + aMedia.setFieldValue("size", Long.toString(getMediaStorageFile(aMedia, aMediaType).length())); aMedia.update(); + reportChange(getMediaStorageFile(aMedia, aMediaType).getAbsolutePath()); } catch (Throwable e) { logger.error("MediaHandlerGeneric.set: " + e.toString()); @@ -105,11 +87,12 @@ public class MediaHandlerGeneric extends AbstractMediaHandler /** {@inheritDoc} */ public void store(InputStream anInputStream, Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure { try { - FileFunctions.copy(anInputStream, getStorageFile(aMedia, aMediaType)); + IORoutines.copyStream(anInputStream, new FileOutputStream(getMediaStorageFile(aMedia, aMediaType))); - aMedia.setFieldValue("publish_path", getRelativeStorageFile(aMedia, aMediaType)); - aMedia.setFieldValue("size", Long.toString(getStorageFile(aMedia, aMediaType).length())); + aMedia.setFieldValue("publish_path", getRelativeMediaStoragePath(aMedia, aMediaType)); + aMedia.setFieldValue("size", Long.toString(getMediaStorageFile(aMedia, aMediaType).length())); aMedia.update(); + reportChange(getMediaStorageFile(aMedia, aMediaType).getAbsolutePath()); } catch (Throwable e) { logger.error("MediaHandlerGeneric.set: " + e.toString()); @@ -117,21 +100,17 @@ public class MediaHandlerGeneric extends AbstractMediaHandler } } + /** {@inheritDoc} */ 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!"); + if (!getMediaStorageFile(aMedia, aMediaType).exists()) { + throw new MediaExc("error in producing media:: " + getMediaStorageFile(aMedia, aMediaType) + " does not exist!"); + } } - /** - * Get access to the raw media data by an {@link InputStream} - */ + /** {@inheritDoc} */ 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)); + return new FileInputStream(getMediaStorageFile(aMedia, aMediaType)); } catch (Throwable e) { throw new MediaFailure("MediaHandlerGeneric.getMedia(): " + e.toString(), e); @@ -149,11 +128,11 @@ public class MediaHandlerGeneric extends AbstractMediaHandler return servletContext.getMimeType(fileName); } - public String getStoragePath() { + public String getBaseStoragePath() { return configuration.getString("Producer.Media.Path"); } - public String getIconStoragePath() { + public String getBaseIconStoragePath() { return configuration.getString("Producer.Image.IconPath"); }