org.pentaho.reporting.engine.classic.core.filter
Class ImageLoadFilter

java.lang.Object
  extended by org.pentaho.reporting.engine.classic.core.filter.ImageLoadFilter
All Implemented Interfaces:
Serializable, Cloneable, DataFilter, DataSource, DataTarget

public class ImageLoadFilter
extends Object
implements DataFilter

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
 Object clone()
          Clones the filter.
 DataSource getDataSource()
          Returns the data source for the filter.
 Object getValue(ExpressionRuntime runtime, Element element)
          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, 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 Object getValue(ExpressionRuntime runtime,
                       Element element)
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
Parameters:
runtime - the expression runtime that is used to evaluate formulas and expressions when computing the value of this filter.
element -
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 Object clone()
             throws CloneNotSupportedException
Clones the filter.

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