magoffin.matt.ma2.image.iio
Class BaseImageIOMediaHandler

java.lang.Object
  extended by magoffin.matt.ma2.support.AbstractMediaHandler
      extended by magoffin.matt.ma2.image.BaseImageMediaHandler
          extended by magoffin.matt.ma2.image.awt.BaseAwtImageMediaHandler
              extended by magoffin.matt.ma2.image.iio.BaseImageIOMediaHandler
All Implemented Interfaces:
MediaHandler
Direct Known Subclasses:
JpegMediaHandler

public abstract class BaseImageIOMediaHandler
extends BaseAwtImageMediaHandler

Base implemenation of MediaHandler using the Java ImageIO library for image operations.

Version:
$Revision: 43 $ $Date: 2007-10-21 11:10:01 +1300 (Sun, 21 Oct 2007) $
Author:
matt.magoffin

Field Summary
 
Fields inherited from class magoffin.matt.ma2.image.BaseImageMediaHandler
DEFAULT_ORIENTATION_180_VALUE, DEFAULT_ORIENTATION_90_CLOCKWISE_VALUE, DEFAULT_ORIENTATION_90_COUNTER_CLOCKWISE_VALUE, DEFAULT_ORIENTATION_METADATA_KEY, ROTATE_180, ROTATE_90_CCW, ROTATE_90_CW
 
Fields inherited from class magoffin.matt.ma2.support.AbstractMediaHandler
log, METADATA_PARAMETER_KEY
 
Constructor Summary
BaseImageIOMediaHandler(java.lang.String mime)
          Construct with MIME type.
 
Method Summary
protected  java.awt.image.BufferedImage defaultHandleDelegateRequest(org.springframework.core.io.Resource mediaResource, java.lang.String mimeType, MediaItem item, MediaRequest request, MediaResponse response)
          Handle a delegate media request.
protected  java.awt.image.BufferedImage defaultHandleRequest(MediaItem item, MediaRequest request, org.springframework.core.io.Resource itemResource, MediaResponse response)
          Handle a media request.
protected  java.awt.image.BufferedImage getBufferedImage(java.lang.String mimeType, MediaItem item, MediaRequest request, org.springframework.core.io.Resource itemResource)
          Get a BufferedImage for a MediaItem.
 ImageMediaHelper getImageMediaHelper()
           
 void setImageMediaHelper(ImageMediaHelper imageMediaHelper)
           
protected  void setupBaseItemProperties(MediaItem item, javax.imageio.ImageReader reader)
          Setup some basic properties from an ImageReader.
 
Methods inherited from class magoffin.matt.ma2.image.awt.BaseAwtImageMediaHandler
getAwtMediaEffectMap, getEffect, setAwtMediaEffectMap
 
Methods inherited from class magoffin.matt.ma2.image.BaseImageMediaHandler
getOrientation180Value, getOrientation90ClockwiseValue, getOrientation90CounterClockwiseValue, getOrientationMetadataKey, handleMetadata, needToRotate, setOrientation180Value, setOrientation90ClockwiseValue, setOrientation90CounterClockwiseValue, setOrientationMetadataKey
 
Methods inherited from class magoffin.matt.ma2.support.AbstractMediaHandler
applyEffects, createMetadataList, defaultHandleRequestOriginal, getDomainObjectFactory, getFileExtension, getMediaBiz, getMediaMetadataInstance, getMime, getNoWatermarkSizes, getPreferredFileExtension, getRequestEffects, getSmetaPropertyMap, getUserBiz, needToAlter, 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
 
Methods inherited from interface magoffin.matt.ma2.MediaHandler
createNewMediaItem, handleMediaRequest
 

Constructor Detail

BaseImageIOMediaHandler

public BaseImageIOMediaHandler(java.lang.String mime)
Construct with MIME type.

Parameters:
mime - the MIME type
Method Detail

defaultHandleDelegateRequest

protected java.awt.image.BufferedImage defaultHandleDelegateRequest(org.springframework.core.io.Resource mediaResource,
                                                                    java.lang.String mimeType,
                                                                    MediaItem item,
                                                                    MediaRequest request,
                                                                    MediaResponse response)
Handle a delegate media request.

This method will operate in the following way:

  1. Call the AbstractMediaHandler.needToAlter(MediaItem, MediaRequest) method. If this returnes false then call AbstractMediaHandler.defaultHandleRequestOriginal(magoffin.matt.ma2.domain.MediaItem, org.springframework.core.io.Resource, magoffin.matt.ma2.MediaResponse) and return.
  2. Create a BufferedImage by calling getBufferedImage(java.lang.String, magoffin.matt.ma2.domain.MediaItem, magoffin.matt.ma2.MediaRequest, org.springframework.core.io.Resource).
  3. Put the BufferedImage instance onto the request parameters using the AwtMediaEffect.INPUT_BUFFERED_IMAGE_KEY key.
  4. Call the AbstractMediaHandler.needToRotate(magoffin.matt.ma2.domain.MediaItem, magoffin.matt.ma2.MediaRequest) method.
  5. Call the AbstractMediaHandler.applyEffects(magoffin.matt.ma2.domain.MediaItem, magoffin.matt.ma2.MediaRequest, magoffin.matt.ma2.MediaResponse) method.
  6. Return the BufferedImage object on the request parameter AwtMediaEffect.INPUT_BUFFERED_IMAGE_KEY key.

These steps allow for standard request processing, and effects are assumed to alter the BufferedImage instance as sneeded.

Parameters:
mediaResource - the resource data to process
mimeType - the mediaResource's MIME type
item - the media item being processed
request - the request
response - the response
Returns:
BufferedImage if any changes were processed, null otherwise

defaultHandleRequest

protected java.awt.image.BufferedImage defaultHandleRequest(MediaItem item,
                                                            MediaRequest request,
                                                            org.springframework.core.io.Resource itemResource,
                                                            MediaResponse response)
Handle a media request.

This method will simply call the defaultHandleDelegateRequest(org.springframework.core.io.Resource, java.lang.String, magoffin.matt.ma2.domain.MediaItem, magoffin.matt.ma2.MediaRequest, magoffin.matt.ma2.MediaResponse), passing in the MediaItem.getMime() type of the item parameter.

Parameters:
item - the media item
request - the request
itemResource - the media item's Resource
response - the response
Returns:
BufferedImage if any changes were processed, null otherwise

getBufferedImage

protected java.awt.image.BufferedImage getBufferedImage(java.lang.String mimeType,
                                                        MediaItem item,
                                                        MediaRequest request,
                                                        org.springframework.core.io.Resource itemResource)
Get a BufferedImage for a MediaItem.

Parameters:
mimeType - of the resouce being handled (may be different from item's MIME if handling a delegate request)
item - the media item
request - the request
itemResource - the item Resource
Returns:
BufferedImage

setupBaseItemProperties

protected void setupBaseItemProperties(MediaItem item,
                                       javax.imageio.ImageReader reader)
                                throws java.io.IOException
Setup some basic properties from an ImageReader.

This will set up the item's width, height, and MIME type.

Parameters:
item - the MediaItem to setup
reader - the ImageReader to read from
Throws:
java.io.IOException - if an error occurs

getImageMediaHelper

public ImageMediaHelper getImageMediaHelper()
Returns:
the imageMediaHelper

setImageMediaHelper

public void setImageMediaHelper(ImageMediaHelper imageMediaHelper)
Parameters:
imageMediaHelper - the imageMediaHelper to set