@Override protected Iterator openIterator() { List features; synchronized (CachingFeatureSource.this) { try { if (index == null || dirty || !isSubQuery(query)) { fillCache(query); } if (queryBounds != null) { features = index.query(queryBounds); } else { features = index.query((Envelope) index.getRoot().getBounds()); } } catch (Exception e) { throw new RuntimeException("Failed to get data", e); } } Iterator it = features.iterator(); if (query.getFilter() != null && Filter.INCLUDE.equals(query.getFilter())) { it = new FilteringIterator<Feature>(it, query.getFilter()); } if (targetSchema != sourceSchema) { it = new ReTypingIterator(it, sourceSchema, targetSchema); } return it; }
public ReTypingIterator( Iterator<SimpleFeature> delegate, SimpleFeatureType source, SimpleFeatureType target) { this.delegate = delegate; this.target = target; types = typeAttributes(source, target); this.builder = new SimpleFeatureBuilder(target); }
public void close(Iterator close) { ReTypingIterator reType = (ReTypingIterator) close; delegate.close( reType.getDelegate() ); } }
public void close(Iterator close) { ReTypingIterator reType = (ReTypingIterator) close; delegate.close( reType.getDelegate() ); }
public Iterator<SimpleFeature> iterator() { return new ReTypingIterator( delegate.iterator(), delegate.getSchema(), featureType ); }
public ReTypingIterator( Iterator delegate, FeatureType source, FeatureType target ) { this.delegate = delegate; this.target = target; types = typeAttributes( source, target ); }
public Iterator iterator() { return new ReTypingIterator( delegate.iterator(), delegate.getSchema(), featureType ); }
public ReTypingIterator( Iterator delegate, SimpleFeatureType source, SimpleFeatureType target ) { this.delegate = delegate; this.target = target; types = typeAttributes( source, target ); this.builder = new SimpleFeatureBuilder(target); }
@Override protected Iterator openIterator() { List features; synchronized (CachingFeatureSource.this) { try { if (index == null || dirty || !isSubQuery(query)) { fillCache(query); } if(queryBounds != null) { features = index.query(queryBounds); } else { features = index.query((Envelope) index.getRoot().getBounds()); } } catch(Exception e) { throw new RuntimeException("Failed to get data", e); } } Iterator it = features.iterator(); if(query.getFilter() != null && Filter.INCLUDE.equals(query.getFilter())) { it = new FilteringIterator<Feature>(it, query.getFilter()); } if(targetSchema != sourceSchema) { it = new ReTypingIterator(it, sourceSchema, targetSchema); } return it; }