org.geotools.data.ows
Class AbstractRequest

Object
  extended by AbstractRequest
All Implemented Interfaces:
Request
Direct Known Subclasses:
AbstractGetCapabilitiesRequest, AbstractWMSRequest

public abstract class AbstractRequest
extends Object
implements Request

A class that provides functionality for performing basic requests

Author:
Richard Gould

Field Summary
static String EXCEPTION_XML
          Represents OGC Exception MIME types
protected  URL onlineResource
           
protected  Properties properties
           
 
Fields inherited from interface Request
REQUEST, SERVICE, VERSION, WMTVER
 
Constructor Summary
AbstractRequest(URL onlineResource, Properties properties)
          Creates an AbstractRequest.
 
Method Summary
 URL getFinalURL()
          Once the properties of the request are configured, this will return the URL that points to the server and contains all of the appropriate name/value parameters.
 String getPostContentType()
          Default POST content type is xml
 Properties getProperties()
           
protected abstract  void initRequest()
           
protected abstract  void initService()
          Implementing subclass requests must specify their own "SERVICE" value.
protected abstract  void initVersion()
          Sets up the version number for this request.
 void performPostOutput(OutputStream outputStream)
          Default to not requiring POST.
protected  String processKey(String key)
          Some Open Web Servers do not abide by the fact that parameter keys should be case insensitive.
 boolean requiresPost()
          Default to not requiring POST.
 void setProperty(String name, String value)
          Sets the name/value property for this request.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface Request
createResponse
 

Field Detail

EXCEPTION_XML

public static final String EXCEPTION_XML
Represents OGC Exception MIME types

See Also:
Constant Field Values

onlineResource

protected URL onlineResource

properties

protected Properties properties
Constructor Detail

AbstractRequest

public AbstractRequest(URL onlineResource,
                       Properties properties)
Creates an AbstractRequest. If properties isn't null, it will use them instead of creating a new Properties object. This constructor will strip all the query parameters off of onlineResource and put them in the properties map. This allows clients to provide their own parameters and have them saved and used along with the OWS specific ones. However, certain parameters will be over-written by individual requests themselves. Examples of such parameters include, but are not limited to:

Parameters:
onlineResource - the URL to construct the Request for
properties - a map of pre-set parameters to be used. Can be null.
Method Detail

getFinalURL

public URL getFinalURL()
Description copied from interface: Request
Once the properties of the request are configured, this will return the URL that points to the server and contains all of the appropriate name/value parameters.

Specified by:
getFinalURL in interface Request
Returns:
a URL that can be used to issue the request
See Also:
org.geotools.data.wms.request.Request#getFinalURL()

processKey

protected String processKey(String key)
Some Open Web Servers do not abide by the fact that parameter keys should be case insensitive. This method will allow a specification to determine the way that the parameter keys should be encoded in requests made by the server.

Parameters:
key - the key to be processed
Returns:
the key, after being processed. (made upper case, for example)

setProperty

public void setProperty(String name,
                        String value)
Description copied from interface: Request
Sets the name/value property for this request. Note that when using this method, it is up to the programmer to provide their own encoding of value according to the OWS specifications! The code will not do this for you. Different OWS specifications define different ways to do this. There are notorious differences between WMS 1.1.1 (section 6.2.1) and WMS 1.3.0 (section 6.3.2) for example. If value is null, "name" is removed from the properties table.

Specified by:
setProperty in interface Request
Parameters:
name - the name of the property
value - the value of the property

getProperties

public Properties getProperties()
Specified by:
getProperties in interface Request
Returns:
a copy of this request's properties

initRequest

protected abstract void initRequest()

initService

protected abstract void initService()
Implementing subclass requests must specify their own "SERVICE" value. Example: setProperty("SERVICE", "WFS");


initVersion

protected abstract void initVersion()
Sets up the version number for this request. Typically something like setProperty("VERSION", "1.1.1");


getPostContentType

public String getPostContentType()
Default POST content type is xml

Specified by:
getPostContentType in interface Request
Returns:
the MIME type of the data to be sent during the request

performPostOutput

public void performPostOutput(OutputStream outputStream)
                       throws IOException
Default to not requiring POST. Implementors can override if they need to.

Specified by:
performPostOutput in interface Request
Throws:
IOException

requiresPost

public boolean requiresPost()
Default to not requiring POST. Implementors can override if they need to.

Specified by:
requiresPost in interface Request
Returns:
true if this request needs POST support, false otherwise.


Copyright © 1996-2014 Geotools. All Rights Reserved.