package org.geoserver.wms.xml;
import java.io.Reader;
import java.util.Map;
import javax.xml.namespace.QName;
import org.geoserver.ows.XmlRequestReader;
import org.geoserver.wms.kvp.GetMapKvpRequestReader;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.styling.SLDParser;
import org.geotools.styling.StyleFactory;
import org.geotools.styling.StyledLayerDescriptor;
import org.vfny.geoserver.wms.requests.GetMapRequest;
/**
* Reads
* @author Justin Deoliveira, The Open Planning Project, jdeolive@openplans.org
*
*/
public class SLDXmlRequestReader extends XmlRequestReader {
StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(null);
public SLDXmlRequestReader() {
super("http://www.opengis.net/sld", "StyledLayerDescriptor" );
}
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(getMap, sld);
return getMap;
}
}