X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fmedia%2FMirMedia.java;h=e706d9aa22ed04efe14e87df19a598bbb82e91b9;hb=aa507bfd18e723d21e63454a26af3320bb8c27f2;hp=7851d901f18f67fb4d05ddd793099f0a5b2ba59d;hpb=19e43122d238202f5026ae776893305bdcdafc7c;p=mir.git diff --git a/source/mir/media/MirMedia.java b/source/mir/media/MirMedia.java index 7851d901..e706d9aa 100755 --- a/source/mir/media/MirMedia.java +++ b/source/mir/media/MirMedia.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2001, 2002 The Mir-coders group + * Copyright (C) 2001, 2002 The Mir-coders group * * This file is part of Mir. * @@ -18,33 +18,29 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * In addition, as a special exception, The Mir-coders gives permission to link - * the code of this program with the com.oreilly.servlet library, any library - * licensed under the Apache Software License, The Sun (tm) Java Advanced - * Imaging library (JAI), The Sun JIMI library (or with modified versions of - * the above that use the same license as the above), and distribute linked - * combinations including the two. You must obey the GNU General Public - * License in all respects for all of the code used other than the above - * mentioned libraries. If you modify this file, you may extend this exception - * to your version of the file, but you are not obligated to do so. If you do - * not wish to do so, delete this exception statement from your version. + * the code of this program with any library licensed under the Apache Software License, + * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library + * (or with modified versions of the above that use the same license as the above), + * and distribute linked combinations including the two. You must obey the + * GNU General Public License in all respects for all of the code used other than + * the above mentioned libraries. If you modify this file, you may extend this + * exception to your version of the file, but you are not obligated to do so. + * If you do not wish to do so, delete this exception statement from your version. */ - package mir.media; -import java.util.*; -import java.io.InputStream; - -import freemarker.template.SimpleList; - -import mir.entity.*; +import java.io.InputStream; +import java.util.List; + +import mir.entity.Entity; /** * Interface for Media handling in Mir. All media handlers * must implement this interface. Each specific media type, * be it Gif, Jpeg, Mp3 audio, Real Audio or quicktime video * has special needs when it comes to representation on the various - * pages (article, list, summary), must be stored differently and has a - * different URL, etc... This interface allows Mir to support + * pages (article, list, summary), must be stored differently and has a + * different URL, etc... This interface allows Mir to support * an infinite (I hope) number of media types. Once this is done, * no code at any other level in Mir needs to be changed other than * adding the content-type <-> media handler name mapping in the @@ -63,7 +59,7 @@ import mir.entity.*; *

* The "name" field is used for various display/filenaming purposes. it should * match a valid file extension name for a media_type (we could have used the - * content-type map for this....). + * content-type map for this....). *

* The "mime_type" field is the most important as it does maps the type to Java * classes (the storage and media_handler name). We call those classes using @@ -81,9 +77,9 @@ import mir.entity.*; *

* Most media handlers should just extend MediaHandlerGeneric (i.e inherit from * ) and just override the things that need to be specific. see MediaHandlerAudio - * - * @author mh - * @version 24.09.2001 + * + * @author , the Mir-coders group + * @version $Id: MirMedia.java,v 1.18.2.1 2003/09/03 17:49:38 zapata Exp $ */ public interface MirMedia{ @@ -100,11 +96,9 @@ public interface MirMedia{ * @return boolean, success/fail * @see mir.entity.Entity */ - public abstract void set (InputStream in, Entity ent, - Entity mediaTypeEnt ) throws MirMediaException; + public abstract void set (InputStream in, Entity ent, Entity mediaTypeEnt ) throws MediaExc, MediaFailure; - public abstract void produce (Entity ent, Entity mediaTypeEnt ) - throws MirMediaException; + public abstract void produce (Entity ent, Entity mediaTypeEnt ) throws MediaExc, MediaFailure; /** * Get's the media data from storage and returns it as an InputStream @@ -116,8 +110,7 @@ public interface MirMedia{ * @return java.io.InputStream * @see mir.entity.Entity */ - public abstract InputStream getMedia (Entity ent, Entity mediaTypeEnt) - throws MirMediaException; + public abstract InputStream getMedia (Entity ent, Entity mediaTypeEnt) throws MediaExc, MediaFailure; /** * Pretty much like get() above. But get's the specific Icon @@ -126,11 +119,21 @@ public interface MirMedia{ * @return java.io.InputStream * @see mir.entity.Entity */ - public abstract InputStream getIcon (Entity ent) throws MirMediaException; + public abstract InputStream getIcon (Entity ent) throws MediaExc, MediaFailure; + + + /** + * + * @param ent + * @return + * @throws MediaExc + * @throws MediaFailure + */ + public abstract String getIconMimeType (Entity aMediaEntity, Entity aMediaType) throws MediaExc, MediaFailure; - /** + /** * gets the final content representation for the media - * in the form of a URL (String) that allows someone to + * in the form of a URL (String) that allows someone to * download, look at or listen to the media. (HREF, img src * streaming link, etc..) * It should use the helper functions in the StringUtil class to @@ -141,10 +144,9 @@ public interface MirMedia{ * @see mir.entity.Entity * @see mir.misc.StringUtil */ - public abstract SimpleList getURL (Entity ent, Entity mediaTypeEnt) - throws MirMediaException; + public abstract List getURL (Entity ent, Entity mediaTypeEnt) throws MediaExc, MediaFailure; - /** + /** * Returns the absolute filesystem path to where the media * content should be stored. This path is usually defined * in the configuration wich is accessible through the MirConfig @@ -152,9 +154,9 @@ public interface MirMedia{ * @return String, the path. * @see mir.misc.MirConfig */ - public abstract String getStoragePath () throws MirMediaException; + public abstract String getStoragePath () throws MediaExc, MediaFailure; - /** + /** * Returns the *relative* filesystem path to where the media * icon content should be stored. It is relative to the path * returned by getStoragePath() @@ -164,9 +166,9 @@ public interface MirMedia{ * @return String, the path. * @see mir.misc.MirConfig */ - public abstract String getIconStoragePath () throws MirMediaException; + public abstract String getIconStoragePath () throws MediaExc, MediaFailure; - /** + /** * Returns the base URL to that the media is accessible from * to the end user. This could be a URL to another host. * This is used in the Metadata stored in the DB and later on @@ -177,9 +179,9 @@ public interface MirMedia{ * @return String, the base URL to the host. * @see mir.misc.MirConfig */ - public abstract String getPublishHost () throws MirMediaException; + public abstract String getPublishHost () throws MediaExc, MediaFailure; - /** + /** * Returns the file name of the Icon representing the media type. * It is used in the summary view. * It is usually defined @@ -189,9 +191,9 @@ public interface MirMedia{ * @see mir.misc.MirConfig */ public abstract String getBigIconName (); - - /** - * Returns the file name of the small Icon representing + + /** + * Returns the file name of the small Icon representing * the media type. * It is used in the right hand newswire list of the startpage. * It is usually defined @@ -202,26 +204,26 @@ public interface MirMedia{ */ public abstract String getTinyIconName (); - /** + /** * Returns the IMG SRC "ALT" text to be used * for the Icon representations * @return String, the ALT text. */ public abstract String getIconAltName (); - /** + /** * your can all figure it out. * @return boolean. */ public abstract boolean isVideo (); - /** + /** * you can all figure it out. * @return boolean. */ public abstract boolean isAudio (); - /** + /** * you can all figure it out. * @return boolean. */