|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ObjectAbstractOpenWebService<C,R>
public abstract class AbstractOpenWebService<C extends Capabilities,R>
This abstract class provides a building block for one to implement an Open Web Service (OWS) client. Each OWS is usually defined by an OGC specification, available at http://www.opengeospatial.org. This class provides version negotiation, Capabilities document retrieval, and a request/response infrastructure. Implementing subclasses need to provide their own Specifications (representing versions of the OWS to be implemented) and their own request/response instances.
modules/library/main (gt-main.jar)
Field Summary | |
---|---|
protected C |
capabilities
|
protected ServiceInfo |
info
|
protected int |
requestTimeout
Define a interval to wait a server response |
protected Map<R,ResourceInfo> |
resourceInfo
|
protected URL |
serverURL
|
protected Specification |
specification
|
protected Specification[] |
specs
Contains the specifications that are to be used with this service |
Constructor Summary | |
---|---|
AbstractOpenWebService(C capabilties,
URL serverURL)
|
|
AbstractOpenWebService(URL serverURL)
Set up the specifications used and retrieve the Capabilities document given by serverURL. |
|
AbstractOpenWebService(URL serverURL,
int requestTimeout)
|
Method Summary | |
---|---|
protected abstract ServiceInfo |
createInfo()
Implemented by a subclass to describe service |
protected abstract ResourceInfo |
createInfo(R resource)
|
ServiceInfo |
getInfo()
Description of this service. |
ResourceInfo |
getInfo(R resource)
|
protected Response |
internalIssueRequest(Request request)
Issues a request to the server and returns that server's response. |
GetCapabilitiesResponse |
issueRequest(GetCapabilitiesRequest request)
|
protected C |
negotiateVersion()
Version number negotiation occurs as follows (credit OGC): 1) If the server implements the requested version number, the server shall send that version. |
void |
setLoggingLevel(Level newLevel)
|
protected abstract void |
setupSpecifications()
Sets up the specifications/versions that this server is capable of communicating with. |
Methods inherited from class Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected int requestTimeout
protected final URL serverURL
protected C extends Capabilities capabilities
protected ServiceInfo info
protected Map<R,ResourceInfo> resourceInfo
protected Specification[] specs
protected Specification specification
Constructor Detail |
---|
public AbstractOpenWebService(URL serverURL) throws IOException, ServiceException
serverURL
- a URL that points to the capabilities document of a server
IOException
- if there is an error communicating with the server
ServiceException
- if the server responds with an errorpublic AbstractOpenWebService(URL serverURL, int requestTimeout) throws IOException, ServiceException
IOException
ServiceException
public AbstractOpenWebService(C capabilties, URL serverURL)
Method Detail |
---|
public ServiceInfo getInfo()
Provides a very quick description of the service, for more information please review the capabilitie document.
protected abstract ServiceInfo createInfo()
public ResourceInfo getInfo(R resource)
protected abstract ResourceInfo createInfo(R resource)
protected abstract void setupSpecifications()
protected C negotiateVersion() throws IOException, ServiceException
Version number negotiation occurs as follows (credit OGC):
The OGC tells us to repeat this process (or give up). This means we are actually going to come up with a bit of setup cost in figuring out our GetCapabilities request. This means that it is possible that we may make multiple requests before being satisfied with a response. Also, if we are unable to parse a given version for some reason, for example, malformed XML, we will request a lower version until we have run out of versions to request with. Thus, a server that does not play nicely may take some time to parse and might not even succeed.
IOException
- if there is an error communicating with the server, or the XML cannot be parsed
ServiceException
- if the server returns a ServiceExceptionprotected Response internalIssueRequest(Request request) throws IOException, ServiceException
request
- the request to be issued
IOException
- if there was a problem communicating with the server
ServiceException
- if the server responds with an exception or returns bad contentpublic GetCapabilitiesResponse issueRequest(GetCapabilitiesRequest request) throws IOException, ServiceException
IOException
ServiceException
public void setLoggingLevel(Level newLevel)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |