Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libFMap_dal / src / org / gvsig / fmap / dal / feature / impl / featureSet / OrderedIterator.java @ 24496

History | View | Annotate | Download (1.04 KB)

1
package org.gvsig.fmap.dal.feature.impl.featureSet;
2

    
3
import java.util.ArrayList;
4
import java.util.Collections;
5
import java.util.Iterator;
6
import java.util.List;
7

    
8
import org.gvsig.fmap.dal.feature.impl.DefaultFeature;
9

    
10
public class OrderedIterator extends DefaultIterator {
11

    
12
        OrderedIterator(DefaultFeatureSet featureSet, Iterator iterator, long index) {
13
                super(featureSet);
14
                // FIXME QUE PASA CON SIZE > Integer.MAX_VALUE ?????
15
                if (featureSet.orderedData == null) {
16
                        List data = new ArrayList();
17
                        Object item;
18
                        while (iterator.hasNext()) {
19
                                item = iterator.next();
20
                                if (item instanceof DefaultFeature) {
21
                                        data.add(((DefaultFeature) item).getData());
22
                                } else {
23
                                        data.add(item);
24
                                }
25
                        }
26
                        Collections.sort(data, new FeatureDataComparator(featureSet.store,
27
                                        featureSet.query.getOrder()));
28
                        featureSet.orderedData = data;
29
                }
30
                if (index < Integer.MAX_VALUE) {
31
                        this.iterator = featureSet.orderedData.listIterator((int) index);
32
                } else {
33
                        this.iterator = featureSet.orderedData.iterator();
34
                        this.skypto(index);
35
                }
36
        }
37

    
38
}
39