magoffin.matt.ma2.support
Class BasicIconBasedMediaHandler

java.lang.Object
  extended by magoffin.matt.ma2.support.AbstractMediaHandler
      extended by magoffin.matt.ma2.support.BasicIconBasedMediaHandler
All Implemented Interfaces:
MediaHandler
Direct Known Subclasses:
BasicAudioMediaHandler

public class BasicIconBasedMediaHandler
extends AbstractMediaHandler

Base handler for media types that are icon-based.

This handler provides support for metadata-based images if available, otherwise an icon is used. For icon resolution, the item's MIME type will be used to search for a PNG image icon using the getIconResourcePathPrefix() path as the prefix, .png as a suffix, and the following search paths will be tried:

  1. mime
  2. mime prefix (part of MIME before the / character)
  3. file extension

For example, for an item with a file name my-video.mpg and with a MIME type of video/mpeg and the default iconResourcePathPrefix, the following paths will be tried:

  1. classpath:META-INF/icons/video/mpeg.png
  2. classpath:META-INF/icons/video.png
  3. classpath:META-INF/icons/mpg.png

The configurable properties of this class are:

imageDelegateMediaHandler
A MediaHandler implementation to handle the embedded image of the metadata, if available.
iconResourcePathPrefix
A resource prefix path to use for resolving icon images.
resourceLoader
A ResourceLoader to use for loading icon resources. Defaults to a DefaultResourceLoader instance.
fallbackIconName
The name of an icon resource to use if searching for a media-specific version fails. Defaults to DEFAULT_FALLBACK_ICON_NAME.

Version:
$Revision: 176 $ $Date: 2008-12-28 14:33:18 +1300 (Sun, 28 Dec 2008) $
Author:
Matt Magoffin (spamsqr@msqr.us)

Field Summary
static java.lang.String DEFAULT_FALLBACK_ICON_NAME
          The default value for the fallbackIconName property.
static java.lang.String DEFAULT_ICON_RESOURCE_PATH_PREFIX
          The default value for the iconResourcePathPrefix property.
static java.lang.String EMBEDDED_IMAGE_MIME_TYPE_METADATA_KEY
          The MediaMetadata key for the embedded image MIME type.
 
Fields inherited from class magoffin.matt.ma2.support.AbstractMediaHandler
log, METADATA_PARAMETER_KEY
 
Constructor Summary
BasicIconBasedMediaHandler(java.lang.String mime, java.lang.String preferredFileExtension)
          Construct with a MIME type.
 
Method Summary
 MediaItem createNewMediaItem(java.io.File inputFile)
          Create a new instance of MediaItem from a File.
protected  void defaultHandleIconResponse(MediaItem item, MediaRequest request, MediaResponse response)
          Default handler for returning an icon response.
protected  void defaultHandleRequest(MediaItem item, MediaRequest request, MediaResponse response)
          Default handler for media requests.
 MediaEffect getEffect(java.lang.String key, java.util.Map<java.lang.String,?> effectParameters)
          Get a MediaEffect instance for a specific key.
 java.lang.String getFallbackIconName()
           
 java.lang.String getFileExtension(MediaItem item, MediaRequest request)
          Get the file extension.
 java.lang.String getIconResourcePathPrefix()
           
 MediaHandlerDelegate getImageMediaRequestDelegate()
           
 org.springframework.core.io.ResourceLoader getResourceLoader()
           
 void handleMediaRequest(MediaItem item, MediaRequest request, MediaResponse response)
          Basic JMagick implementation of handleMediaRequest.
 void setFallbackIconName(java.lang.String fallbackIconName)
           
 void setIconResourcePathPrefix(java.lang.String iconResourcePathPrefix)
           
 void setImageMediaRequestDelegate(MediaHandlerDelegate imageMediaRequestDelegate)
           
 void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
           
 
Methods inherited from class magoffin.matt.ma2.support.AbstractMediaHandler
applyEffects, createMetadataList, defaultHandleRequestOriginal, getDomainObjectFactory, getMediaBiz, getMediaMetadataInstance, getMime, getNoWatermarkSizes, getPreferredFileExtension, getRequestEffects, getSmetaPropertyMap, getUserBiz, handleMetadata, needToAlter, needToRotate, setDomainObjectFactory, setMediaBiz, setMime, setNoWatermarkSizes, setPreferredFileExtension, setSmetaPropertyMap, setUserBiz
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMBEDDED_IMAGE_MIME_TYPE_METADATA_KEY

public static final java.lang.String EMBEDDED_IMAGE_MIME_TYPE_METADATA_KEY
The MediaMetadata key for the embedded image MIME type.

See Also:
Constant Field Values

DEFAULT_ICON_RESOURCE_PATH_PREFIX

public static final java.lang.String DEFAULT_ICON_RESOURCE_PATH_PREFIX
The default value for the iconResourcePathPrefix property.

See Also:
Constant Field Values

DEFAULT_FALLBACK_ICON_NAME

public static final java.lang.String DEFAULT_FALLBACK_ICON_NAME
The default value for the fallbackIconName property.

See Also:
Constant Field Values
Constructor Detail

BasicIconBasedMediaHandler

public BasicIconBasedMediaHandler(java.lang.String mime,
                                  java.lang.String preferredFileExtension)
Construct with a MIME type.

Parameters:
mime - the MIME
preferredFileExtension - the preferred file extension
Method Detail

createNewMediaItem

public MediaItem createNewMediaItem(java.io.File inputFile)
Description copied from interface: MediaHandler
Create a new instance of MediaItem from a File.

This method will be called when a new media item is to be added into Matte. This method should populate as much information as it can extract from the file into a MediaItem instance, including populating any Metadata it can extract from the file.

This method does not need to persist the MediaItem instance, just populate it and return it.

Parameters:
inputFile - the file to create the media item from
Returns:
an instance of MediaItem

handleMediaRequest

public void handleMediaRequest(MediaItem item,
                               MediaRequest request,
                               MediaResponse response)
Basic JMagick implementation of handleMediaRequest.

This implementation simply calls defaultHandleRequest(MediaItem, MediaRequest, MediaResponse).

Parameters:
item - the media item to process
request - the request
response - the response

getFileExtension

public java.lang.String getFileExtension(MediaItem item,
                                         MediaRequest request)
Description copied from class: AbstractMediaHandler
Get the file extension.

This method simply returns AbstractMediaHandler.getPreferredFileExtension(). Extending class may override this for request-specific handling.

Specified by:
getFileExtension in interface MediaHandler
Overrides:
getFileExtension in class AbstractMediaHandler
Parameters:
item - the media item to process
request - the request
Returns:
a file extension, without the period

getEffect

public MediaEffect getEffect(java.lang.String key,
                             java.util.Map<java.lang.String,?> effectParameters)
Description copied from interface: MediaHandler
Get a MediaEffect instance for a specific key.

Implementaions must define the keys they support, and define the parameters that go with it.

Specified by:
getEffect in interface MediaHandler
Overrides:
getEffect in class AbstractMediaHandler
Parameters:
key - the key of the desired effect
effectParameters - a Map of parameters (optional)
Returns:
a MediaEffect instance

defaultHandleRequest

protected void defaultHandleRequest(MediaItem item,
                                    MediaRequest request,
                                    MediaResponse response)
Default handler for media requests.

Parameters:
item - the item
request - the request
response - the response

defaultHandleIconResponse

protected void defaultHandleIconResponse(MediaItem item,
                                         MediaRequest request,
                                         MediaResponse response)
Default handler for returning an icon response.

Parameters:
item - the item
request - the request
response - the response

getImageMediaRequestDelegate

public MediaHandlerDelegate getImageMediaRequestDelegate()
Returns:
the imageMediaRequestDelegate

setImageMediaRequestDelegate

public void setImageMediaRequestDelegate(MediaHandlerDelegate imageMediaRequestDelegate)
Parameters:
imageMediaRequestDelegate - the imageMediaRequestDelegate to set

getIconResourcePathPrefix

public java.lang.String getIconResourcePathPrefix()
Returns:
the iconResourcePathPrefix

setIconResourcePathPrefix

public void setIconResourcePathPrefix(java.lang.String iconResourcePathPrefix)
Parameters:
iconResourcePathPrefix - the iconResourcePathPrefix to set

getFallbackIconName

public java.lang.String getFallbackIconName()
Returns:
the fallbackIconName

setFallbackIconName

public void setFallbackIconName(java.lang.String fallbackIconName)
Parameters:
fallbackIconName - the fallbackIconName to set

getResourceLoader

public org.springframework.core.io.ResourceLoader getResourceLoader()
Returns:
the resourceLoader

setResourceLoader

public void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
Parameters:
resourceLoader - the resourceLoader to set