/* Copyright (c) 2010 TOPP - www.openplans.org. All rights reserved. * This code is licensed under the GPL 2.0 license, availible at the root * application directory. */ package org.geoserver.sld; import java.io.Reader; import java.util.Map; import org.geoserver.ows.XmlRequestReader; import org.geoserver.wms.GetMapRequest; import org.geoserver.wms.WMS; import org.geoserver.wms.map.GetMapKvpRequestReader; import org.geotools.factory.CommonFactoryFinder; import org.geotools.styling.SLDParser; import org.geotools.styling.StyleFactory; import org.geotools.styling.StyledLayerDescriptor; /** * Reads * @author Justin Deoliveira, The Open Planning Project, jdeolive@openplans.org * */ public class SLDXmlRequestReader extends XmlRequestReader { StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(null); private WMS wms; public SLDXmlRequestReader(WMS wms) { super("http://www.opengis.net/sld", "StyledLayerDescriptor" ); this.wms = wms; } public void setStyleFactory(StyleFactory styleFactory) { this.styleFactory = styleFactory; } public Object read(Object request, Reader reader, Map kvp) throws Exception { if ( request == null ) { throw new IllegalArgumentException( "request must be not null" ); } GetMapRequest getMap = (GetMapRequest) request; StyledLayerDescriptor sld = new SLDParser( styleFactory, reader ).parseSLD(); //process the sld GetMapKvpRequestReader.processStandaloneSld(wms, getMap, sld); return getMap; } }