conformsToFeaturesQueryables method

bool conformsToFeaturesQueryables({
  1. bool? queryParameters,
  2. bool? filter,
  3. bool? featuresFilter,
})

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);
}