gvsig-geoprocess / org.gvsig.sextante / trunk / org.gvsig.sextante.app / org.gvsig.sextante.app.extension / src / main / java / org / gvsig / sextante / app / extension / core / gvRecordsetIterator.java @ 35
History | View | Annotate | Download (1.7 KB)
1 | 20 | nbrodin | package org.gvsig.sextante.app.extension.core; |
---|---|---|---|
2 | |||
3 | import java.util.ArrayList; |
||
4 | import java.util.Iterator; |
||
5 | |||
6 | import org.gvsig.fmap.dal.exception.DataException; |
||
7 | import org.gvsig.fmap.dal.feature.DisposableIterator; |
||
8 | import org.gvsig.fmap.dal.feature.Feature; |
||
9 | import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
||
10 | import org.gvsig.fmap.dal.feature.FeatureSet; |
||
11 | import org.gvsig.fmap.dal.feature.FeatureType; |
||
12 | import org.gvsig.tools.dispose.DisposeUtils; |
||
13 | |||
14 | import es.unex.sextante.dataObjects.IRecord; |
||
15 | import es.unex.sextante.dataObjects.IRecordsetIterator; |
||
16 | import es.unex.sextante.dataObjects.RecordImpl; |
||
17 | |||
18 | public class gvRecordsetIterator implements IRecordsetIterator { |
||
19 | |||
20 | private FeatureSet featureSet;
|
||
21 | // long m_iIndex;
|
||
22 | private DisposableIterator featureIterator;
|
||
23 | |||
24 | gvRecordsetIterator(FeatureSet obj) throws DataException {
|
||
25 | |||
26 | featureSet = obj; |
||
27 | try {
|
||
28 | featureIterator=featureSet.iterator(); |
||
29 | } catch (DataException e) {
|
||
30 | throw e;
|
||
31 | } |
||
32 | // m_iIndex = 0;
|
||
33 | |||
34 | } |
||
35 | |||
36 | public boolean hasNext() { |
||
37 | return featureIterator.hasNext();
|
||
38 | } |
||
39 | |||
40 | public IRecord next() {
|
||
41 | Feature feature = (Feature) featureIterator.next(); |
||
42 | FeatureType fType=feature.getType(); |
||
43 | Iterator<FeatureAttributeDescriptor> descriptors=fType.iterator();
|
||
44 | ArrayList<Object> objects=new ArrayList<Object>(); |
||
45 | while (descriptors.hasNext()) {
|
||
46 | FeatureAttributeDescriptor descriptor = descriptors.next(); |
||
47 | objects.add(feature.get(descriptor.getName())); |
||
48 | } |
||
49 | |||
50 | IRecord record = new RecordImpl(objects.toArray(new Object[0])); |
||
51 | |||
52 | return record;
|
||
53 | } |
||
54 | |||
55 | public void close() { |
||
56 | if (featureIterator != null) { |
||
57 | featureIterator.dispose(); |
||
58 | featureIterator = null;
|
||
59 | } |
||
60 | DisposeUtils.dispose(featureSet); |
||
61 | } |
||
62 | |||
63 | } |