/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2004-2008, Open Source Geospatial Foundation (OSGeo)
*
* 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;
* version 2.1 of the License.
*
* 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.geotools.data.wms;
import java.net.URL;
import org.geotools.data.ows.Specification;
import org.geotools.data.wms.request.DescribeLayerRequest;
import org.geotools.data.wms.request.GetFeatureInfoRequest;
import org.geotools.data.wms.request.GetLegendGraphicRequest;
import org.geotools.data.wms.request.GetMapRequest;
import org.geotools.data.wms.request.GetStylesRequest;
import org.geotools.data.wms.request.PutStylesRequest;
public abstract class WMSSpecification extends Specification {
/**
* Creates a GetMapRequest for this specification, populating it with valid
* values.
*
* @param onlineResource the URL for the GetMapRequest
* @return a GetMapRequest that can be configured and used
*/
public abstract GetMapRequest createGetMapRequest( URL onlineResource );
/**
* Creates a GetFeatureInfoRequest for this specification, populating it
* with valid values.
*
* @param onlineResource the URL to be executed against
* @param getMapRequest a previously configured GetMapRequest
* @return a GetFeatureInfoRequest that can be configured and used
*/
public abstract GetFeatureInfoRequest createGetFeatureInfoRequest( URL onlineResource, GetMapRequest getMapRequest);
/**
* Creates a DescribeLayer request which can be used to retrieve
* information about specific layers on the Web Map Server.
*
* @param onlineResource the location where the request can be made
* @return a DescribeLayerRequest to be configured and then passed to the Web Map Server
* @throws UnsupportedOperationException if the version of the specification doesn't support this request
*/
public abstract DescribeLayerRequest createDescribeLayerRequest( URL onlineResource ) throws UnsupportedOperationException;
/**
* Creates a GetLegendGraphicRequest which can be used to retrieve legend
* graphics from the WebMapServer
*
* @param onlineResource the location where the request can be made
* @return a GetLegendGraphicRequest to be configured and passed to the WMS
* @throws UnsupportedOperationException if the version of the specification doesn't support this request
*/
public abstract GetLegendGraphicRequest createGetLegendGraphicRequest(URL onlineResource) throws UnsupportedOperationException;
/**
* Creates a GetStylesRequest which can be used to retrieve styles from
* the WMS.
*
* @param onlineResource The location where the request can be made
* @return a configurable request object to be passed to a WMS
* @throws UnsupportedOperationException if the version of the specification doesn't support this request
*/
public abstract GetStylesRequest createGetStylesRequest(URL onlineResource) throws UnsupportedOperationException;
/**
* Creates a PutStyles request which can be configured and the passed to
* the WMS to store styles for later use.
*
* @param onlineResource the location where the request can be made
* @return a configureable request object to be passed to the WMS
* @throws UnsupportedOperationException if the version of the specification doesn't support this request
*/
public abstract PutStylesRequest createPutStylesRequest(URL onlineResource) throws UnsupportedOperationException;
}