Class 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 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,
                               ReportElement 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.