Details
-
Type:
Improvement
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
Description
With Complex Features, there is the possibility of properties evaluating to multiple values (collections of values) rather than a single value.
It should be possible to apply comparison operators (like "=", "<") and geometry operators (like overlaps/touches/etc) to multi-valued properties.
However, the current filter system in Geotools assumes a single value for each property.
Currently in app-schema, a work-around exists for making this work on mapped feature collections. This work-around only works when the filtering is applied to the mapping datastore, not when applying filters on already built complex features. Therefore it does not work in two situations
- in WMS styling files, it doesn't work.
- I am currently creating a new post-filtering system for a performance improved app-schema and I cannot use the old workaround any more.
Better would be provide proper support for filtering on multiple values in the actual filters.
Proposal: see http://docs.codehaus.org/display/GEOTOOLS/Support+Multi-Valued+Attributes+in+Filter+Comparison+Operators
- equals, not equals, gt, gte, lt, lte, between, like
- all geometry filters
To allow collections of values to be used rather than just single values as input.
All possible combinations are evaluated and OR-ed to produce a single Boolean result.
All existing behaviour is the same.
The new behaviour is extensively tested in a new unit test.