/* Copyright (c) 2001 - 2007 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.vfny.geoserver.wms.requests;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.geoserver.platform.ServiceException;
import org.geoserver.wms.WMS;
import org.vfny.geoserver.Request;
import org.vfny.geoserver.util.requests.CapabilitiesRequest;
import org.vfny.geoserver.util.requests.readers.KvpRequestReader;
/**
* This utility reads in a GetCapabilities KVP request and turns it into an
* appropriate internal CapabilitiesRequest object, upon request.
*
* @author Rob Hranac, TOPP
* @author Gabriel Rold?n, Axios Engineering
* @version $Id$
*/
public class CapabilitiesKvpReader extends KvpRequestReader {
private WMS wms;
/**
* Creates a Capabilities Kvp Reader.
*
* @param kvPairs the kvp set.
* @param wms The wms service config facade.
*/
public CapabilitiesKvpReader(Map kvPairs, WMS wms) {
super(kvPairs, wms.getServiceInfo());
this.wms = wms;
}
/**
* Get Capabilities request.
*
* @return Capabilities request.
*
* @throws ServiceException DOCUMENT ME!
*/
public Request getRequest(HttpServletRequest request)
throws ServiceException {
CapabilitiesRequest currentRequest = new WMSCapabilitiesRequest(wms);
currentRequest.setHttpServletRequest(request);
String reqVersion = wms.getVersion();
if (keyExists("VERSION")) {
reqVersion = getValue("VERSION");
} else if (keyExists("WMTVER")) {
reqVersion = getValue("WMTVER");
}
currentRequest.setVersion(reqVersion);
if (keyExists("UPDATESEQUENCE")) {
currentRequest.setUpdateSequence(getValue("UPDATESEQUENCE"));
}
if(keyExists("NAMESPACE")) {
currentRequest.setNamespace(getValue("NAMESPACE"));
}
return currentRequest;
}
}