Statistics
| Revision:

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 @ 90

History | View | Annotate | Download (1.69 KB)

1
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.Feature;
8
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
9
import org.gvsig.fmap.dal.feature.FeatureSet;
10
import org.gvsig.fmap.dal.feature.FeatureType;
11
import org.gvsig.tools.dispose.DisposableIterator;
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
}