/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2008, 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.renderer.style; import java.awt.Graphics2D; import java.awt.Shape; import org.opengis.feature.Feature; import org.opengis.filter.expression.Expression; /** * Symbol handler for a Mark. * * @source $URL$ */ public interface MarkFactory { /** * Turns the specified URL into an Shape, eventually using the Feature * attributes to evaluate the expression, or returns null if * the factory cannot evaluate this symbolUrl. *

* The returned Shape must not exceed the [-0.5, -0.5, 0.5, 0.5] bounds * (will be rescaled according to the parameter given in graphics * on the fly

* * @param symbolUrl * the expression that will return the symbol name. Once * evaluated the expression should return something like * plainName or like protocol://path. * See the actual implementations for details on the kind of * supported name. * @param feature * The feature that will be used to evaluate the symbolURL * expression (or to extract data from it, think complex attributes, in that * case a visit to the expression and some direct attribute value extraction * might be needed instead) * */ public Shape getShape(Graphics2D graphics, Expression symbolUrl, Feature feature) throws Exception; }