ingo@1115: /* ingo@1115: * Copyright (c) 2010 by Intevation GmbH ingo@1115: * ingo@1115: * This program is free software under the LGPL (>=v2.1) ingo@1115: * Read the file LGPL.txt coming with the software for details ingo@1115: * or visit http://www.gnu.org/licenses/ if it does not exist. ingo@1115: */ ingo@1115: sascha@441: package de.intevation.gnv.raster; sascha@441: sascha@441: import org.w3c.dom.Element; sascha@441: sascha@441: /** sascha@801: * Interface to model transformations of rasters. sascha@780: * @author Sascha L. Teichmann sascha@441: */ sascha@441: public interface Filter sascha@441: { sascha@801: /** sascha@801: * Allows the creation of filters parameterized from XML elements. sascha@801: */ sascha@441: public interface Factory { sascha@441: sascha@801: /** sascha@801: * Setup the factory with a given XML element. sascha@801: * @param element sascha@801: */ sascha@441: void init(Element element); sascha@441: sascha@801: /** sascha@801: * Created a new Filter with this factory. sascha@801: * @return The new created Filter. sascha@801: */ sascha@441: Filter create(); sascha@441: sascha@441: } // interface Factory sascha@441: sascha@801: /** sascha@801: * Apply this filter to a given raster. The original raster is sascha@801: * unmodified and a new raster is created. sascha@801: * @param raster The original raster. sascha@801: * @return The new raster. sascha@801: */ sascha@441: Raster filter(Raster raster); sascha@441: } sascha@798: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :