/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.sld;
import java.io.Reader;
import java.util.Map;
import org.geoserver.catalog.Styles;
import org.geoserver.ows.XmlRequestReader;
import org.geoserver.wms.GetMapRequest;
import org.geoserver.wms.WMS;
import org.geoserver.wms.map.GetMapKvpRequestReader;
import org.geotools.styling.StyledLayerDescriptor;
/**
* Reads
* @author Justin Deoliveira, The Open Planning Project, jdeolive@openplans.org
*
*/
public class SLDXmlRequestReader extends XmlRequestReader {
private WMS wms;
public SLDXmlRequestReader(WMS wms) {
super("http://www.opengis.net/sld", "StyledLayerDescriptor" );
this.wms = wms;
}
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 =
Styles.handler(getMap.getStyleFormat()).parse(reader, getMap.styleVersion(), null, null);
//process the sld
GetMapKvpRequestReader.processStandaloneSld(wms, getMap, sld);
return getMap;
}
}