Interface ILcdCSWCapabilitiesProvider

All Known Implementing Classes:
ALcdCSWCapabilitiesProvider

public interface ILcdCSWCapabilitiesProvider
Configures the CSW server's capabilities. More specifically, it exposes the following functionality:
  • the CSW versions to advertise
  • important info/metadata about the service itself (e.g. what kind of data are offering) and the provider (e.g. your company name)
  • the OpenSearch capabilities (used for 3.0.0 servers only)
  • the supported input and output record types and associated properties.
  • the query handler that will search for and return records from the catalogue.

The use of this interface allows to return an up to date version of the capabilities for requests and eases implementation of access control. Most implementations of this class can simply extend ALcdCSWCapabilitiesProvider.

Since:
2017.0
  • Method Details

    • getSupportedVersions

      List<String> getSupportedVersions()
      Returns the CSW versions that will be advertised by the server. The first version of the returned list is the default one.
      Returns:
      the default and fallback versions of the supported catalogue standard
    • createServiceProvider

      TLcdOWSServiceProvider createServiceProvider(ILcdRequest aRequest)
      Returns the general service info/metadata that will appear in the server's capabilities document.
      Returns:
      the general service info/metadata that will appear in the server's capabilities document. Never null.
    • createServiceIdentification

      TLcdOWSServiceIdentification createServiceIdentification(ILcdRequest aRequest)
      Returns the general service identification that will appear in the server's capabilities document.
      Returns:
      the service identification that will appear in the server's capabilities document, containing at least one supported version. Never null.
    • getExtendedCapabilities

      default Object getExtendedCapabilities(ILcdRequest aRequest)
      Returns extended operations metadata capabilities, if any. Individual software vendors and servers can use this element to provide metadata about any additional server abilities.
      Returns:
      an Object describing additional server abilities, or null
      Since:
      2017.1
      See Also:
      • ALcdOWSOperationsMetadata.getExtendedCapabilities()
    • getOpenSearchTemplates

      List<TLcdCSWOpenSearchTemplate> getOpenSearchTemplates(ILcdRequest aRequest)
      Returns the URL templates used to advertise OpenSearch capabilities.
      Parameters:
      aRequest - the request triggering the call
      Returns:
      the URL templates, or an empty list if the server should not advertise OpenSearch capabilities. Never null.
    • getFilterCapabilities

      TLcdOGCFilterCapabilities getFilterCapabilities(ILcdRequest aRequest)
      Returns the OGC filter capabilities supported by this handler.
      Parameters:
      aRequest - the request triggering the call
      Returns:
      the filter capabilities
      Since:
      2017.1
    • getInputRecordTypes

      List<TLcdCSWRecordType> getInputRecordTypes(ILcdRequest aRequest)
      Returns a description of all data records that can be queried. For 2.0.2 compliancy, this list should at least contain TLcdCSWRecordType.CSW_202. For 3.0.0 compliancy, this list should at least contain TLcdCSWRecordType.CSW_300. See TLcdCSWQuery.getTypeNames() for how to specify the input record type in a query. See getInputRecordProperties(com.luciad.ogc.common.ILcdRequest, com.luciad.ogc.csw.record.TLcdCSWRecordType) for the specific properties that are supported.
      Parameters:
      aRequest - the request triggering the call
      Returns:
      the descriptors for all data records that can be queried.
      Since:
      2017.1
    • getInputRecordProperties

      List<QName> getInputRecordProperties(ILcdRequest aRequest, TLcdCSWRecordType aInputFormat)
      Returns the names of the properties (e.g. dc:title, apiso:Creator, ...) this query handler can handle in record query filters. This information is used by the server when advertising capabilities. The key of the map is the name of the constraint to advertise (e.g. CoreQueryables).
      Parameters:
      aRequest - the request triggering the call
      aInputFormat - the input format for which to return the properties
      Returns:
      the queryable properties supported by this handler
      Since:
      2017.1
    • getOutputRecordTypes

      List<TLcdCSWRecordType> getOutputRecordTypes(ILcdRequest aRequest)
      Returns a description of all the output formats (e.g. CSW Dublin Core, ISO Metadata, ATOM Feeds, ...) the query handler can use to construct the result of a given query. For 2.0.2 compliancy, this list should at least contain TLcdCSWRecordType.CSW_202. For 3.0.0 compliancy, this list should at least contain TLcdCSWRecordType.CSW_300 and TLcdCSWRecordType.ATOM.
      Parameters:
      aRequest - the request triggering the call
      Returns:
      the descriptors for all the output types the query handler can use to construct the result to a given query.
      Since:
      2017.1
    • getOutputRecordProperties

      List<QName> getOutputRecordProperties(ILcdRequest aRequest, TLcdCSWRecordType aOutputFormat)
      Returns the names of the properties (e.g. dc:title, apiso:Creator, ...) this query handler can include for the given record format when constructing a query result. This information is used by the server to validate queries. See TLcdCSWQuery.getElements() for how to specify output properties in record queries.
      Parameters:
      aRequest - the request triggering the call
      aOutputFormat - the output format for which to return the properties
      Returns:
      the returnable properties supported by this handler
      Since:
      2017.1
    • getQueryHandler

      ILcdCSWQueryHandler getQueryHandler(ILcdRequest aRequest)
      Returns the query handler that will search for and return records from the catalogue.
      Parameters:
      aRequest - the request triggering the call
      Returns:
      an ILcdCSWQueryHandler that will handle each query that is sent along with a getRecords request, never null.
      Since:
      2017.1