package org.geoserver.wps.sextante;
import java.util.NoSuchElementException;
import org.geotools.feature.FeatureCollection;
import org.geotools.feature.FeatureIterator;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import com.vividsolutions.jts.geom.Geometry;
import es.unex.sextante.dataObjects.FeatureImpl;
import es.unex.sextante.dataObjects.IFeature;
import es.unex.sextante.dataObjects.IFeatureIterator;
public class GTFeatureIterator implements IFeatureIterator {
private FeatureIterator<SimpleFeature> m_Iter;
public GTFeatureIterator(FeatureCollection<SimpleFeatureType, SimpleFeature> fc){
m_Iter = fc.features();
}
public boolean hasNext() {
if (m_Iter != null){
return m_Iter.hasNext();
}
else{
return false;
}
}
public IFeature next() throws NoSuchElementException{
if (m_Iter != null){
if (!m_Iter.hasNext()){
throw new NoSuchElementException();
}
SimpleFeature gtFeat = m_Iter.next();
Object values[] = new Object[gtFeat.getAttributeCount() - 1];
for (int i = 1; i < gtFeat.getAttributeCount(); i++) {
values[i - 1] = gtFeat.getAttribute(i);
}
IFeature feat = new FeatureImpl((Geometry) gtFeat.getDefaultGeometry(), values);
return feat;
}
else{
return null;
}
}
public void close() {
m_Iter.close();
}
}