001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/graphics/sld/AbstractSymbolizer.java $ 002 /*---------------- FILE HEADER ------------------------------------------ 003 004 This file is part of deegree. 005 Copyright (C) 2001-2008 by: 006 EXSE, Department of Geography, University of Bonn 007 http://www.giub.uni-bonn.de/deegree/ 008 lat/lon GmbH 009 http://www.lat-lon.de 010 011 This library is free software; you can redistribute it and/or 012 modify it under the terms of the GNU Lesser General Public 013 License as published by the Free Software Foundation; either 014 version 2.1 of the License, or (at your option) any later version. 015 016 This library is distributed in the hope that it will be useful, 017 but WITHOUT ANY WARRANTY; without even the implied warranty of 018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 019 Lesser General Public License for more details. 020 021 You should have received a copy of the GNU Lesser General Public 022 License along with this library; if not, write to the Free Software 023 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 024 025 Contact: 026 027 Andreas Poth 028 lat/lon GmbH 029 Aennchenstr. 19 030 53115 Bonn 031 Germany 032 E-Mail: poth@lat-lon.de 033 034 Prof. Dr. Klaus Greve 035 Department of Geography 036 University of Bonn 037 Meckenheimer Allee 166 038 53115 Bonn 039 Germany 040 E-Mail: greve@giub.uni-bonn.de 041 042 043 ---------------------------------------------------------------------------*/ 044 package org.deegree.graphics.sld; 045 046 /** 047 * This is the basis of all symbolizers. It defines the method <tt>getGeometry</tt> that's common 048 * to all symbolizers. 049 * <p> 050 * ---------------------------------------------------------------------- 051 * </p> 052 * 053 * @author <a href="mailto:k.lupp@web.de">Katharina Lupp</a> 054 * @version $Revision: 9340 $ $Date: 2007-12-27 13:32:12 +0100 (Do, 27 Dez 2007) $ 055 */ 056 057 public abstract class AbstractSymbolizer implements Symbolizer { 058 protected double maxDenominator = 9E99; 059 060 protected double minDenominator = 0; 061 062 protected Geometry geometry = null; 063 064 protected String responsibleClass = null; 065 066 /** 067 * default constructor 068 */ 069 AbstractSymbolizer() { 070 } 071 072 /** 073 * constructor initializing the class with the <Symbolizer> 074 */ 075 AbstractSymbolizer( Geometry geometry ) { 076 setGeometry( geometry ); 077 } 078 079 /** 080 * constructor initializing the class with the <Symbolizer> 081 */ 082 AbstractSymbolizer( Geometry geometry, String resonsibleClass ) { 083 setGeometry( geometry ); 084 setResponsibleClass( resonsibleClass ); 085 } 086 087 /** 088 * The Geometry element is optional and if it is absent then the default geometry property of 089 * the feature type that is used in the containing FeatureStyleType is used. The precise meaning 090 * of default geometry property is system-dependent. Most frequently, feature types will have 091 * only a single geometry property. 092 * 093 * @return the geometry of the symbolizer 094 * 095 */ 096 public Geometry getGeometry() { 097 return geometry; 098 } 099 100 /** 101 * sets the <Geometry> 102 * 103 * @param geometry 104 * the geometry of the symbolizer 105 * 106 */ 107 public void setGeometry( Geometry geometry ) { 108 this.geometry = geometry; 109 } 110 111 /** 112 * @return the MinScaleDenominator 113 */ 114 public double getMinScaleDenominator() { 115 return minDenominator; 116 } 117 118 /** 119 * @param minDenominator 120 * the MinScaleDenominator 121 */ 122 public void setMinScaleDenominator( double minDenominator ) { 123 this.minDenominator = minDenominator; 124 } 125 126 /** 127 * @return the MaxScaleDenominator 128 */ 129 public double getMaxScaleDenominator() { 130 return maxDenominator; 131 } 132 133 /** 134 * @param maxDenominator 135 * the MaxScaleDenominator 136 */ 137 public void setMaxScaleDenominator( double maxDenominator ) { 138 this.maxDenominator = maxDenominator; 139 } 140 141 /** 142 * returns the name of a class that will be used for rendering the current symbolizer. This 143 * enables a user to define his own rendering class (DisplayElement) for a symbolizer to realize 144 * styles/renderings that can't be defined using SLD at the moment.<BR> 145 * The returned class must extend 146 * org.deegree_impl.graphics.displayelements.GeometryDisplayElement_Impl<BR> 147 * For default the method returns the deegree default class name for rendering the current 148 * symbolizer. 149 * 150 * @return the name of a class that will be used for rendering the current symbolizer. 151 * 152 */ 153 public String getResponsibleClass() { 154 return responsibleClass; 155 } 156 157 /** 158 * sets a class that will be used for rendering the current symbolizer. This enables a user to 159 * define his own rendering class (DisplayElement) for a symbolizer to realize styles/renderings 160 * that can't be defined using SLD at the moment.<BR> 161 * The passed class must extend 162 * org.deegree_impl.graphics.displayelements.GeometryDisplayElement_Impl 163 * 164 * @param responsibleClass 165 * 166 */ 167 public void setResponsibleClass( String responsibleClass ) { 168 this.responsibleClass = responsibleClass; 169 } 170 171 }