conformsToFeaturesQueryables method
Check whether a service conforms to the Queryables
conformance class of
the OGC API - Features - Part 3: Filtering
standard.
Optionally also check whether it supports querybles as queryParameters
(that is conforming to the Queryables as Query Parameters
conformance
class), filter
and/or featuresFilter
.
Examples:
// Require the `Queryables` conformance class. Other classes could be
// supported or not.
conformsToFeaturesQueryables();
// Require `Queryables` and `Queryables as Query Parameters` conformance
// classes. Other classes could be supported or not.
conformsToFeaturesQueryables(queryParameters: true);
// Require `Queryables` and `Queryables as Query Parameters` conformance
// classes, and require NOT conforming to `Filter`. Other classes could
// be supported or not.
conformsToFeaturesQueryables(queryParameters: true, filter: false);
Implementation
bool conformsToFeaturesQueryables({
bool? queryParameters,
bool? filter,
bool? featuresFilter,
}) {
var isQueryables = false;
var isQueryParameters = false;
var isFilter = false;
var isFeaturesFilter = false;
for (final id in classes) {
if (!isQueryables && id == features3Queryables) {
isQueryables = true;
}
if (!isQueryParameters && id == features3QueryablesAsQueryParameters) {
isQueryParameters = true;
}
if (!isFilter && id == features3Filter) {
isFilter = true;
}
if (!isFeaturesFilter && id == features3FeaturesFilter) {
isFeaturesFilter = true;
}
}
return isQueryables &&
(queryParameters == null || isQueryParameters == queryParameters) &&
(filter == null || isFilter == filter) &&
(featuresFilter == null || isFeaturesFilter == featuresFilter);
}