/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2015, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.styling; import java.util.Map; import org.opengis.filter.expression.Expression; import org.opengis.style.ContrastMethod; /** * This interface defines the strategy that a ContrastEnhancement will use to * execute the ContrastMethod that it has defined. This allows uses to make use * of VendorOptions in the SLD (& CSS) to specify an algorithm to apply and named * parameters to control how that algorithm operates. * * @author Ian Turton. * */ public interface ContrastMethodStrategy { /** * Add a VendorOption that controls how this strategy operates. All VendorOptions are optional and the strategy will operate using default values * if missing. * * @param key the name of the Vendor Option * @param value an expression that evaluates to the value of the option. */ void addOption(String key, Expression value); /** * Return the Map of VendorOptions used by this strategy. This may be empty but should not be null. * * @return the options a map of Expressions keyed by name. * */ Map<String, Expression> getOptions(); /** * Set the options map - do not set it to null; * * @param options the options to set */ void setOptions(Map<String, Expression> options); /** * Get the constant that defines the method that this strategy uses. * * @return the method */ ContrastMethod getMethod(); /** * Set the constant that defines the method that this strategy uses. * * @param method the method to set */ void setMethod(ContrastMethod method); }