/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2008 - 2009, Geomatys * * 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; either * version 2.1 of the License, or (at your option) any later version. * * 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.geotoolkit.style; import javax.measure.Unit; import org.opengis.style.Description; import org.opengis.style.Symbolizer; import static org.geotoolkit.style.StyleConstants.*; import org.opengis.filter.expression.Expression; import org.opengis.filter.expression.PropertyName; /** * Abstract implementation of Types symbolizer. * * @author Johann Sorel (Geomatys) * @module */ public abstract class AbstractSymbolizer implements Symbolizer{ protected final Unit uom; protected final Expression geom; protected final String name; protected final Description desc; /** * Create an abstract symbolizer. * * @param uom : if null will be replaced by default value. * @param geom : can be null * @param name : can be null * @param desc : if null will be replaced by default description. */ protected AbstractSymbolizer(final Unit uom, final Expression geom, final String name, final Description desc){ this.uom = (uom == null) ? DEFAULT_UOM : uom ; this.geom = geom; this.name = name; this.desc = (desc == null) ? StyleConstants.DEFAULT_DESCRIPTION : desc; } /** * {@inheritDoc } */ @Override public Unit getUnitOfMeasure() { return uom; } /** * {@inheritDoc } */ @Override public String getGeometryPropertyName() { if(geom instanceof PropertyName){ return ((PropertyName)geom).getPropertyName(); }else{ return null; } } /** * {@inheritDoc } */ @Override public Expression getGeometry(){ return geom; } /** * {@inheritDoc } */ @Override public String getName() { return name; } /** * {@inheritDoc } */ @Override public Description getDescription() { return desc; } }