com.jrefinery.report.filter
Class ImageLoadFilter

java.lang.Object
  |
  +--com.jrefinery.report.filter.ImageLoadFilter
All Implemented Interfaces:
java.lang.Cloneable, DataFilter, DataSource, DataTarget, java.io.Serializable

public class ImageLoadFilter
extends java.lang.Object
implements DataFilter, java.io.Serializable

The image load filter is used to load images during the report generation process. This filter expects its datasource to return a java.net.URL. If the datasource does not return an URL, null is returned.

This filter is mostly used in conjunction with the URLFilter, which creates URLs from Strings and files if nessesary.

The url is used to create a new imagereference which is returned to the caller. The loaded/created imagereference is stored in an internal cache.

This filter can be used to dynamically change images of a report, a very nice feature for photo albums and catalogs for instance.

This filter will return null, if something else than an URL was retrieved from the assigned datasource

Author:
Thomas Morgner
See Also:
Serialized Form

Constructor Summary
ImageLoadFilter()
          creates a new ImageLoadFilter with a cache size of 10.
ImageLoadFilter(int cacheSize)
          Creates a new ImageLoadFilter with the defined cache size.
 
Method Summary
 java.lang.Object clone()
          Clones the filter.
 DataSource getDataSource()
          Returns the data source for the filter.
 java.lang.Object getValue()
          Reads this filter's datasource and if the source returned an URL, tries to form a imagereference.
 void setDataSource(DataSource ds)
          Sets the data source.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImageLoadFilter

public ImageLoadFilter()
creates a new ImageLoadFilter with a cache size of 10.


ImageLoadFilter

public ImageLoadFilter(int cacheSize)
Creates a new ImageLoadFilter with the defined cache size.

Parameters:
cacheSize - the cache size.
Method Detail

getValue

public java.lang.Object getValue()
Reads this filter's datasource and if the source returned an URL, tries to form a imagereference. If the image is loaded in a previous run and is still in the cache, no new reference is created and the previously loaded reference is returned.

Specified by:
getValue in interface DataSource
Returns:
the current value for this filter.

getDataSource

public DataSource getDataSource()
Returns the data source for the filter.

Specified by:
getDataSource in interface DataTarget
Returns:
The data source.

setDataSource

public void setDataSource(DataSource ds)
Sets the data source.

Specified by:
setDataSource in interface DataTarget
Parameters:
ds - The data source.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Clones the filter.

Specified by:
clone in interface DataSource
Overrides:
clone in class java.lang.Object
Returns:
a clone.
Throws:
java.lang.CloneNotSupportedException - this should never happen.