Revision 23675 branches/v2_0_0_prep/libraries/libFMap_data/src/org/gvsig/fmap/data/feature/joinstore/JoinFeatureCollectionWithFeatureID.java
JoinFeatureCollectionWithFeatureID.java | ||
---|---|---|
1 | 1 |
package org.gvsig.fmap.data.feature.joinstore; |
2 | 2 |
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.Collection; |
|
5 |
import java.util.Comparator; |
|
6 |
import java.util.Iterator; |
|
7 |
import java.util.TreeSet; |
|
3 |
import java.util.*; |
|
8 | 4 |
|
9 | 5 |
import org.gvsig.fmap.data.DataManager; |
10 | 6 |
import org.gvsig.fmap.data.DataStore; |
11 | 7 |
import org.gvsig.fmap.data.ReadException; |
12 |
import org.gvsig.fmap.data.feature.AbstractFeatureCollection; |
|
13 |
import org.gvsig.fmap.data.feature.AbstractFeatureIDIterator; |
|
14 |
import org.gvsig.fmap.data.feature.Feature; |
|
15 |
import org.gvsig.fmap.data.feature.FeatureCollection; |
|
16 |
import org.gvsig.fmap.data.feature.FeatureStore; |
|
17 |
import org.gvsig.fmap.data.feature.FeatureType; |
|
8 |
import org.gvsig.fmap.data.feature.*; |
|
18 | 9 |
import org.gvsig.fmap.data.feature.expressionevaluator.Filter; |
19 | 10 |
import org.gvsig.tools.observer.DefaultObservable; |
20 | 11 |
|
... | ... | |
100 | 91 |
return dbfIter; |
101 | 92 |
} |
102 | 93 |
|
94 |
protected Iterator internalIterator(int index) { |
|
95 |
checkModified(); |
|
96 |
FIDIterator fidIter; |
|
97 |
|
|
98 |
if (featureIDs instanceof List) { |
|
99 |
fidIter = new FIDIterator(((List) featureIDs).listIterator(index), |
|
100 |
featureType); |
|
101 |
} else { |
|
102 |
// TODO: If featureIDs is not a Collection of type List (actually, |
|
103 |
// only when ordering is applied), we are not able |
|
104 |
// to get a listIterator with an index, so we have to move the |
|
105 |
// iterator to the required position. This option will be probably |
|
106 |
// a lot slower, so an option would be to order with a List |
|
107 |
// instead of a TreeSet. |
|
108 |
Iterator iter = featureIDs.iterator(); |
|
109 |
for (int i = 0; i < index; i++) { |
|
110 |
iter.next(); |
|
111 |
} |
|
112 |
|
|
113 |
fidIter = new FIDIterator(iter, featureType); |
|
114 |
} |
|
115 |
|
|
116 |
return fidIter; |
|
117 |
} |
|
118 |
|
|
103 | 119 |
public Object[] toArray() { |
104 | 120 |
checkModified(); |
105 | 121 |
ArrayList features= new ArrayList(); |
Also available in: Unified diff