Problem Statement
...
QueryFilterTransformer instances will be registered as services. ID will be set to the same name as used by InputTransformers:
<entry key="id" value="gmd:MD_Metadata"/>
The CSW Endpoint (and other endpoints as required) will be modified to get the QueryFilterTransformer by id using the typeNames. Endpoint will call existing filterBuilder logic to build up a QueryRequest from the input criteria. The Endpoint will then call the QueryFilterTransformer to transform from external attribute names/values to taxonomy names/values.
QueryFilterTransformer | |
---|---|
QueryRequest transform(QueryRequest) | Transforms ddf.catalog.operation.QueryRequest containing external attribute names & values into a normalized taxonomy QueryRequest. QueryRequest is used in order to allow the transformer to directly modify other properties (e.g. sourceId) based on criteria without requiring the endpoint to modify the request after conversion. Transform method will use the FilterVisitor pattern and build the result Filter as the query is parsed. |
Multiple typeNames
The CSW 2.0.2 specification describes typeNames as the following:
...
Is typeNames the correct field to use to specify query format type? yes
If typeNames is used to determine the query format, should more than 1 be supported? no, throw UnsupportedQueryException in this case
If more than one is present, what is the expected behavior? throw UnsupportedQueryException
Reference Documents
Document | Link |
---|---|
OpenGIS® Catalogue Services Specification | https://portal.opengeospatial.org/files/?artifact_id=20555 |
CSW 2.0.2 Schema | http://schemas.opengis.net/csw/2.0.2/CSW-publication.xsd |
GeoTools Filter | http://docs.geotools.org/stable/userguide/library/opengis/filter.html |