/* * 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.styling; import java.awt.RenderingHints; import java.net.URL; import java.util.Collections; import java.util.Map; import org.opengis.filter.expression.Expression; /** * Abstract base class for implementing style factories. * * @source $URL$ */ public abstract class AbstractStyleFactory implements StyleFactory { public abstract TextSymbolizer createTextSymbolizer(Fill fill, Font[] fonts, Halo halo, Expression label, LabelPlacement labelPlacement, String geometryPropertyName); public abstract ExternalGraphic createExternalGraphic(URL url, String format); public abstract ExternalGraphic createExternalGraphic(String uri, String format); public abstract AnchorPoint createAnchorPoint(Expression x, Expression y); public abstract Displacement createDisplacement(Expression x, Expression y); // public abstract LinePlacement createLinePlacement(); public abstract PointSymbolizer createPointSymbolizer(); // public abstract PointPlacement createPointPlacement(); public abstract Mark createMark(Expression wellKnownName, Stroke stroke, Fill fill, Expression size, Expression rotation); /** * Convinence method for obtaining a mark of a fixed shape * * @return a Mark that matches the name in this method. */ public abstract Mark getCircleMark(); /** * Convinence method for obtaining a mark of a fixed shape * * @return a Mark that matches the name in this method. */ public abstract Mark getXMark(); /** * Convinence method for obtaining a mark of a fixed shape * * @return a Mark that matches the name in this method. */ public abstract Mark getStarMark(); /** * Convinence method for obtaining a mark of a fixed shape * * @return a Mark that matches the name in this method. */ public abstract Mark getSquareMark(); /** * Convinence method for obtaining a mark of a fixed shape * * @return a Mark that matches the name in this method. */ public abstract Mark getCrossMark(); /** * Convinence method for obtaining a mark of a fixed shape * * @return a Mark that matches the name in this method. */ public abstract Mark getTriangleMark(); public abstract FeatureTypeStyle createFeatureTypeStyle(Rule[] rules); public abstract LinePlacement createLinePlacement(Expression offset); public abstract PolygonSymbolizer createPolygonSymbolizer(); public abstract Halo createHalo(Fill fill, Expression radius); public abstract Fill createFill(Expression color, Expression backgroundColor, Expression opacity, Graphic graphicFill); public abstract LineSymbolizer createLineSymbolizer(); public abstract PointSymbolizer createPointSymbolizer(Graphic graphic, String geometryPropertyName); public abstract Style createStyle(); public abstract NamedStyle createNamedStyle(); public abstract Fill createFill(Expression color, Expression opacity); public abstract Fill createFill(Expression color); public abstract TextSymbolizer createTextSymbolizer(); public abstract PointPlacement createPointPlacement( AnchorPoint anchorPoint, Displacement displacement, Expression rotation); /** * A convienice method to make a simple stroke * * @param color the color of the line * @param width the width of the line * * @return the stroke object * * @see org.geotools.stroke */ public abstract Stroke createStroke(Expression color, Expression width); /** * A convienice method to make a simple stroke * * @param color the color of the line * @param width The width of the line * @param opacity The opacity of the line * * @return The stroke * * @see org.geotools.stroke */ public abstract Stroke createStroke(Expression color, Expression width, Expression opacity); /** * creates a stroke * * @param color The color of the line * @param width The width of the line * @param opacity The opacity of the line * @param lineJoin - the type of Line joint * @param lineCap - the type of line cap * @param dashArray - an array of floats describing the dashes in the line * @param dashOffset - where in the dash array to start drawing from * @param graphicFill - a graphic object to fill the line with * @param graphicStroke - a graphic object to draw the line with * * @return The completed stroke. * * @see org.geotools.stroke */ public abstract Stroke createStroke(Expression color, Expression width, Expression opacity, Expression lineJoin, Expression lineCap, float[] dashArray, Expression dashOffset, Graphic graphicFill, Graphic graphicStroke); public abstract Rule createRule(); public abstract LineSymbolizer createLineSymbolizer(Stroke stroke, String geometryPropertyName); public abstract FeatureTypeStyle createFeatureTypeStyle(); public abstract Graphic createGraphic(ExternalGraphic[] externalGraphics, Mark[] marks, Symbol[] symbols, Expression opacity, Expression size, Expression rotation); public abstract Font createFont(Expression fontFamily, Expression fontStyle, Expression fontWeight, Expression fontSize); public abstract Mark createMark(); public abstract PolygonSymbolizer createPolygonSymbolizer(Stroke stroke, Fill fill, String geometryPropertyName); public abstract RasterSymbolizer createRasterSymbolizer( String geometryPropertyName, Expression opacity, ChannelSelection channel, Expression overlap, ColorMap colorMap, ContrastEnhancement ce, ShadedRelief relief, Symbolizer outline); public abstract RasterSymbolizer getDefaultRasterSymbolizer(); public abstract ChannelSelection createChannelSelection( SelectedChannelType[] channels); public abstract SelectedChannelType createSelectedChannelType(String name, Expression enhancement); public abstract ColorMap createColorMap(); public abstract ColorMapEntry createColorMapEntry(); public abstract Style getDefaultStyle(); public abstract Stroke getDefaultStroke(); public abstract Fill getDefaultFill(); public abstract Mark getDefaultMark(); public abstract PointSymbolizer getDefaultPointSymbolizer(); public abstract PolygonSymbolizer getDefaultPolygonSymbolizer(); public abstract LineSymbolizer getDefaultLineSymbolizer(); /** * Creates a default Text Symbolizer, using the defaultFill, defaultFont * and defaultPointPlacement, Sets the geometry attribute name to be * geometry:text. No Halo is set. <b>The label is not set</b> * * @return A default TextSymbolizer */ public abstract TextSymbolizer getDefaultTextSymbolizer(); public abstract Graphic getDefaultGraphic(); public abstract Font getDefaultFont(); public abstract PointPlacement getDefaultPointPlacement(); /** * Returns implementation hints for this factory. The default * implementation returns an empty map. * * @return DOCUMENT ME! */ public Map<RenderingHints.Key,?> getImplementationHints() { return Collections.emptyMap(); } }