public void testParse() throws Exception { FilterMockData.spatial(document, document); SpatialOperators spatial = (SpatialOperators) parse(OGC.Spatial_OperatorsType); assertNotNull(spatial.getOperator("BBOX")); assertNotNull(spatial.getOperator("Equals")); assertNotNull(spatial.getOperator("Disjoint")); assertNotNull(spatial.getOperator("Intersect")); assertNotNull(spatial.getOperator("Touches")); assertNotNull(spatial.getOperator("Crosses")); assertNotNull(spatial.getOperator("Within")); assertNotNull(spatial.getOperator("Contains")); assertNotNull(spatial.getOperator("Overlaps")); assertNotNull(spatial.getOperator("Beyond")); assertNotNull(spatial.getOperator("DWithin")); }
/** * Ionic's capabilities may state the spatial operator {@code Intersect} instead of {@code * Intersects}. If so, we fix that here so intersects is actually recognized as a supported * filter. */ @Override public Filter[] splitFilters(Capabilities caps, Filter queryFilter) { FilterCapabilities filterCapabilities = caps.getContents(); SpatialCapabilities spatialCapabilities = filterCapabilities.getSpatialCapabilities(); if (spatialCapabilities != null) { SpatialOperators spatialOperators = spatialCapabilities.getSpatialOperators(); if (spatialOperators != null) { SpatialOperator missnamedIntersects = spatialOperators.getOperator("Intersect"); if (missnamedIntersects != null) { LOGGER.fine( "Ionic capabilities states the spatial operator Intersect. " + "Assuming it is Intersects and adding Intersects as a " + "supported filter type"); caps.addName(Intersects.NAME); } } } return super.splitFilters(caps, queryFilter); }