package org.geotools.data.efeature.query;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.ecore.EObject;
import org.geotools.data.efeature.EFeatureIterator;
/**
* EFeature Query class.
* <p>
* This class returns a EObject Tree iterator that:
* <ol>
* <li>support lazy loading (memory efficient)</li>
* <li>support spatial filtering</li>
* </ol>
* </p>
*
* @author kengu
*
*/
public class EFeatureQuery {
public static final int UNBOUNDED = 0;
private EFeatureFilter eWhere;
private TreeIterator<EObject> from;
public EFeatureQuery(TreeIterator<EObject> from, EFeatureFilter eWhere) {
this.from = from;
this.eWhere = eWhere;
}
public EFeatureFilter getFilter() {
return eWhere;
}
public EFeatureIterator iterator() {
return new EFeatureIterator(from, eWhere);
}
public void dispose() {
this.from = null;
this.eWhere = null;
}
}