[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[udig-devel] Code that did not make sense ... implementation of MapImpl.select( bbox, and )
|
The following code goes to a lot of trouble to set up:
( newFilter OR oldFIlter AND (newFIlterCopy AND NOT(null)))
The second half of this filter is sure to fail - as NOT( null ) will be
a null pointer exception every time ...
BEFORE (the problem is with the first line - notFilter never has an
filter provided to it to inverse)
LogicFilter
notFilter=createFilterFactory.createLogicFilter(FilterType.LOGIC_NOT);
LogicFilter intersectionFilter =
createFilterFactory.createLogicFilter(newFilterCopy, notFilter,
FilterType.LOGIC_AND);
LogicFilter andFilter =
createFilterFactory.createLogicFilter(oldFilter, intersectionFilter,
FilterType.LOGIC_AND);
LogicFilter orFilter =
createFilterFactory.createLogicFilter(newFilter, andFilter,
FilterType.LOGIC_OR);
layer.setFilter(orFilter);
I think this results to the same thing as newFilter - especially now
that NPE is not fatal for an OR expression...
I have simply updated the factory use - preserving what I suspect is a
bug on trunk:
Filter notFilter=createFilterFactory.not( null ); // WARNING this is a
null operation
Filter intersectionFilter = createFilterFactory.and(newFilterCopy,
notFilter);
Filter andFilter = createFilterFactory.and(oldFilter, intersectionFilter);
Filter orFilter = createFilterFactory.or(newFilter, andFilter );
layer.setFilter(orFilter);
Jody