Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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