Hi,
today I fixed a bug in Oracle related to encoding 
Filter.INCLUDE/Filter.EXCLUDE. The bug was there, no excuse,
but the filter that was going to be encoded was like:

INCLUDE AND INCLUDE AND geom bbox (...)

which is kind of silly. One workaround for this would be to
have datastores encoding filters into sql or ogc filter to
simplify the filter thru a duplicating and simplifying
visitor... but this sound a lot like an after the fact hack.

Another solution would be to introduce a smarter builder
for filters, but fact is, most of the code is using FilterFactory
and it's simple enough that most people won't look for
the builder even if there was one.

Imho the simple, effective solution would be to change
FilterFactory.and to return Filter intead of And,
and the same goes for FilterFactory.or, and have the
factory do the simplification during the build.
For example, if Filter.and(...) was feeded a list of
filters including Filter.EXCLUDE, the result would simply
be Filter.EXCLUDE, as simple as that...

This is an API breaking change, and a GeoApi change as well,
but it would allow a clean a long term solution to this
problem with a simple no-nonsense change.

Opinions?
Cheers
Andrea

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to