Revision 25747 branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/impl/DefaultFeatureIndexes.java
DefaultFeatureIndexes.java | ||
---|---|---|
36 | 36 |
import org.gvsig.fmap.dal.exception.DataException; |
37 | 37 |
import org.gvsig.fmap.dal.feature.FeatureIndex; |
38 | 38 |
import org.gvsig.fmap.dal.feature.FeatureIndexes; |
39 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
|
39 | 40 |
import org.gvsig.fmap.dal.feature.exception.FeatureIndexException; |
40 |
import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider; |
|
41 | 41 |
import org.gvsig.fmap.dal.feature.spi.index.FeatureIndexProviderServices; |
42 | 42 |
import org.gvsig.tools.evaluator.Evaluator; |
43 | 43 |
import org.gvsig.tools.evaluator.EvaluatorFieldValue; |
... | ... | |
98 | 98 |
* returns null |
99 | 99 |
* |
100 | 100 |
* @param evaluator |
101 |
* @return FeatureSetProvider or null if could not find any appropriate
|
|
101 |
* @return FeatureSet or null if could not find any appropriate |
|
102 | 102 |
* index. |
103 | 103 |
* |
104 | 104 |
*/ |
105 |
public FeatureSetProvider getFeatureSet(Evaluator evaluator) {
|
|
105 |
public FeatureSet getFeatureSet(Evaluator evaluator) { |
|
106 | 106 |
|
107 | 107 |
class ApplyIndex { |
108 | 108 |
DefaultFeatureIndex index; |
... | ... | |
137 | 137 |
* @return FeatureSet with the result |
138 | 138 |
* @throws FeatureIndexException |
139 | 139 |
*/ |
140 |
FeatureSetProvider apply() throws FeatureIndexException {
|
|
140 |
IndexFeatureSet apply() throws FeatureIndexException {
|
|
141 | 141 |
|
142 | 142 |
// Trick: we know DefaultIndexProvider returns an IndexFeatureSet, |
143 | 143 |
// which implements both FeatureSetProvider and FeatureSet. |
144 | 144 |
switch (data[0].getType()) { |
145 | 145 |
case EvaluatorFieldValue.MATCH: |
146 |
return (FeatureSetProvider) index.getMatchFeatureSet(
|
|
146 |
return (IndexFeatureSet) index.getMatchFeatureSet(
|
|
147 | 147 |
data[0].getValue()); |
148 | 148 |
case EvaluatorFieldValue.RANGE: |
149 |
return (FeatureSetProvider) index.getRangeFeatureSet(
|
|
149 |
return (IndexFeatureSet) index.getRangeFeatureSet(
|
|
150 | 150 |
data[0].getValue1(), data[0].getValue2()); |
151 | 151 |
case EvaluatorFieldValue.NEAREST: |
152 | 152 |
if ((data[0].getTolerance() == -1) || (!isSupported())) { |
153 |
return (FeatureSetProvider) index.getNearestFeatureSet(data[0].getCount(),
|
|
153 |
return (IndexFeatureSet) index.getNearestFeatureSet(data[0].getCount(),
|
|
154 | 154 |
data[0].getValue()); |
155 | 155 |
} else { |
156 |
return (FeatureSetProvider) index.getNearestFeatureSet(data[0].getCount(),
|
|
156 |
return (IndexFeatureSet) index.getNearestFeatureSet(data[0].getCount(),
|
|
157 | 157 |
data[0].getValue(), |
158 | 158 |
data[0].getTolerance()); |
159 | 159 |
} |
Also available in: Unified diff