T - filter typepublic interface FilterCombiner<F,V,R>
Implementations are free to filter out all irrelevant data, or only some of
it, if at all. If the former happens for each call, and in addition to that,
the SpaceVisitor never returns SpatialRelation.COVERED when
there is a chance for extraneous points in that particular orthotope, the
framework guarantees that that no irrelevant data points will be selected by
the query. On the other hand, if the filter object stats getting too big, an
implementation is free to create a filter that doesn't filter anything at
all. But in that case extraneous points might (and probably will) be selected
by the constructed query.
| Modifier and Type | Method and Description |
|---|---|
SelectiveFilter<F> |
combine(FilteredIndexRange<F,R> firstFilteredRange,
FilteredIndexRange<F,R> secondFilteredRange,
V gapEstimate)
Combines two filtered index ranges and produces a combined filter that must
be valid in the context of the range
[firstFilteredRange.getIndexRange().getStart(),
secondFilteredRange.getIndexRange().getEnd()). |
SelectiveFilter<F> combine(FilteredIndexRange<F,R> firstFilteredRange, FilteredIndexRange<F,R> secondFilteredRange, V gapEstimate)
[firstFilteredRange.getIndexRange().getStart(),
secondFilteredRange.getIndexRange().getEnd()). When the framework calls
this method it is guaranteed that firstRange is disjoint and sits
before secondIndexRange on the space filling curve.
The parameter gapEstimate is provided to help implementations trade
the size of the filter in some representation format for selectivity of
irrelevant points, and to enabled heavy optimisations free of any tradeoffs
when the gap is zero.
firstFilteredRange - the filtered index range coming before on the
space filling curvesecondFilteredRange - the filtered index range coming after on the
space filling curvegapEstimate - the estimate of the number of points in the gap between
the index ranges. If zero, then it is guaranteed that there are no data
points in between. If non zero, it is just an estimate and its accuracy
depends on the accuracy provided by the RegionInspector in use.
If the two ranges are adjacent, i.e. firstFilteredRange.getIndexRange().getEnd() ==
secondFilteredRange.getIndexRange().getStart(), then the gap estimate is
guaranteed to be zero.Copyright © 2014. All Rights Reserved.