public interface ILcdWCSCapabilitiesProvider
Provides the WCS capabilities, or parts of it. The capabilities describe what this server has to offer, that is, which coverage offerings it has. This is a core extension point when implementing your own server. Alternatively, you can use the Fusion Platform, where the capabilities are configured through the Studio web application.
As the capabilities are retrieved for every request, it for example allows to easily add or remove coverage offerings without having to restart the server. Furthermore, the request that is being handled is provided as a parameter, which allows for tailor-made capabilities based on that information. It could for example be used to implement access control: grant certain users access to more coverage offerings than others (see below).
As this interface is called for every request, the implementation must be fast and efficient. It could for example apply caching, to avoid any work if no changes to the capabilities are needed. The simplest implementation would ignore the provided request parameter and always provide the same coverage offerings.
The methods getCoverageOfferings(ILcdRequest)
and getCoverageOfferings(List, ILcdRequest)
allow
to differentiate access to coverages based on the user's authorization information. The user's authorization
information can be extracted from the request using the getUserPrincipal
or
isUserInRole
methods. Use the following exception codes for handling
access control:
NOT_AUTHORIZED
:
to indicate the user has requested a coverage he does not have access to. AUTHENTICATION_REQUIRED
:
to indicate the user has request a coverage for which authentication is required
but no authentication has been provided yet.The resulting exception is translated in a proper response to the client application.
Modifier and Type | Method and Description |
---|---|
List<ILcdCoverageOffering> |
getCoverageOfferings(ILcdRequest aRequest)
Returns the list of
ILcdCoverageOffering s that contain a description of the coverages available from this
server. |
List<ILcdCoverageOffering> |
getCoverageOfferings(List<String> aCoverageNames,
ILcdRequest aRequest)
Returns the list of
ILcdCoverageOffering s with coverage names that correspond to the given coverage names. |
TLcdOWSServiceIdentification |
getServiceIdentification(ILcdRequest aRequest)
Returns the
TLcdOWSServiceIdentification which contains metadata about this specific server. |
TLcdOWSServiceProvider |
getServiceProvider(ILcdRequest aRequest)
Returns the
TLcdOWSServiceProvider which contains metadata about the organization operating this server. |
default String |
getUpdateSequence(ILcdRequest aRequest)
Returns the update sequence of the WCS service.
|
List<ILcdCoverageOffering> getCoverageOfferings(ILcdRequest aRequest) throws TLcdWCSServiceException
ILcdCoverageOffering
s that contain a description of the coverages available from this
server.aRequest
- The ILcdRequest
TLcdWCSServiceException
- when the coverage offerings couldn't be created.List<ILcdCoverageOffering> getCoverageOfferings(List<String> aCoverageNames, ILcdRequest aRequest) throws TLcdWCSServiceException
ILcdCoverageOffering
s with coverage names that correspond to the given coverage names.aCoverageNames
- The coverage namesaRequest
- The ILcdRequest
TLcdWCSServiceException
- when the coverage offerings couldn't be created.TLcdOWSServiceIdentification getServiceIdentification(ILcdRequest aRequest) throws TLcdWCSServiceException
TLcdOWSServiceIdentification
which contains metadata about this specific server.aRequest
- The ILcdRequest
TLcdWCSServiceException
- when the service identification cannot be created.TLcdOWSServiceProvider getServiceProvider(ILcdRequest aRequest) throws TLcdWCSServiceException
TLcdOWSServiceProvider
which contains metadata about the organization operating this server.aRequest
- The ILcdRequest
TLcdWCSServiceException
- when the service provider cannot be created.default String getUpdateSequence(ILcdRequest aRequest) throws TLcdWCSServiceException
Returns the update sequence of the WCS service. This method is used for the GetCapabilities request.
By default, this method returns null
, which means that no updateSequence will be published in the
capabilities.
aRequest
- the user requestTLcdWCSServiceException
- when a problem is encountered when retrieving the update sequence