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

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

public class DrawableLoadFilter
extends Object
implements DataFilter

The DrawableLoadFilter is used to load drawable image files (like WMF's) 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 as result of calling "getValue()".

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 Drawable object which is returned to the caller. The loaded/created Drawable is also 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
DrawableLoadFilter()
          creates a new ImageLoadFilter with a cache size of 10.
DrawableLoadFilter(int cacheSize)
          Deprecated. The cache-Size parameter has no effect anymore. Use the default constructor.
 
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

DrawableLoadFilter

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


DrawableLoadFilter

public DrawableLoadFilter(int cacheSize)
Deprecated. The cache-Size parameter has no effect anymore. Use the default constructor.

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.