@Override public void close() { rs.close(); }
@Override public int queryHits( org.deegree.feature.persistence.query.Query query ) throws FilterEvaluationException, FeatureStoreException { return query( query ).toCollection().size(); }
Iterator<Feature> iter = rs.iterator();
public int queryHits( Query query ) throws FeatureStoreException, FilterEvaluationException { // TODO SELECT COUNT return query( query ).count(); }
LOG.error( "Could not create a geometry layer texture because: " + e.getLocalizedMessage(), e ); if ( frs == null || !frs.iterator().hasNext() ) { Java2DRenderer renderer = new Java2DRenderer( graphics, imageWidth, imageHeight, tileEnv ); LOG.debug( LogUtils.createDurationTimeString( "Creating graphics object", sT, false ) ); Iterator<Feature> it = frs.iterator();
hits = queryByOperatorFilter( query, ftName, filter ).count(); } else { StringBuilder sql = new StringBuilder( "SELECT " );
private GMLObject getObjectByIdRelational( String id ) throws FeatureStoreException { GMLObject result = null; IdAnalysis idAnalysis = getSchema().analyzeId( id ); if ( !idAnalysis.isFid() ) { String msg = "Fetching of geometries by id (relational mode) is not implemented yet."; throw new UnsupportedOperationException( msg ); } FeatureInputStream rs = queryByIdFilterRelational( null, new IdFilter( id ), null ); try { Iterator<Feature> iter = rs.iterator(); if ( iter.hasNext() ) { result = iter.next(); } } finally { rs.close(); } return result; }
@Override public int queryHits( Query query ) throws FeatureStoreException, FilterEvaluationException { // TODO return query( query ).toCollection().size(); }
@Override public int queryHits( Query query ) throws FeatureStoreException, FilterEvaluationException { if ( query.getTypeNames() == null || query.getTypeNames().length > 1 ) { String msg = "Join queries between multiple feature types are not supported by the SQLFeatureStore implementation (yet)."; throw new UnsupportedOperationException( msg ); } Filter filter = query.getFilter(); int hits = 0; if ( query.getTypeNames().length == 1 && ( filter == null || filter instanceof OperatorFilter ) ) { QName ftName = query.getTypeNames()[0].getFeatureTypeName(); FeatureType ft = getSchema().getFeatureType( ftName ); if ( ft == null ) { String msg = "Feature type '" + ftName + "' is not served by this feature store."; throw new FeatureStoreException( msg ); } hits = queryHitsByOperatorFilter( query, ftName, (OperatorFilter) filter ); } else { // must be an id filter based query if ( query.getFilter() == null || !( query.getFilter() instanceof IdFilter ) ) { String msg = "Invalid query. If no type names are specified, it must contain an IdFilter."; throw new FilterEvaluationException( msg ); } // should be no problem iterating over the features (id queries usually request only a few ids) hits = queryByIdFilter( query.getTypeNames(), (IdFilter) filter, query.getSortProperties() ).count(); } return hits; }
/** * Returns all members of the given {@link FeatureInputStream} as a {@link FeatureCollection}. * <p> * NOTE: This method should not be called for very large result sets, as it introduces the overhead of keeping all * created feature instances in memory. The returned collection will contain all {@link Feature}s instances from the * current position in the iteration sequence. * </p> * * @return members as feature collection, never <code>null</code> */ public static FeatureCollection toCollection( FeatureInputStream is ) { List<Feature> members = new ArrayList<Feature>(); for ( Feature feature : is ) { members.add( feature ); } is.close(); return new GenericFeatureCollection( null, members ); }
result = new MemoryFeatureInputStream( Features.sortFc( result.toCollection(), sortCrit ) );
featureInputStream.close();
FeatureCollection fc = store.query( query ).toCollection();
@Override public void render( RenderContext context ) throws InterruptedException { FeatureInputStream features = null; try { // TODO Should this always be done on this level? What about queueSize value? features = featureStore.query( queries.toArray( new Query[queries.size()] ) ); features = new ThreadedFeatureInputStream( features, 100 ); FeatureStreamRenderer renderer = new FeatureStreamRenderer( context, maxFeatures, evaluator ); renderer.renderFeatureStream( features, style ); } catch ( InterruptedException e ) { throw e; } catch ( FilterEvaluationException e ) { LOG.warn( "A filter could not be evaluated. The error was '{}'.", e.getLocalizedMessage() ); LOG.trace( "Stack trace:", e ); } catch ( Throwable e ) { LOG.warn( "Data could not be fetched from the feature store. The error was '{}'.", e.getLocalizedMessage() ); LOG.trace( "Stack trace:", e ); } finally { if ( features != null ) { features.close(); } } }
try { FeatureCollection fc = manager.getStore().query( query ).toCollection();
result = new MemoryFeatureInputStream( Features.sortFc( result.toCollection(), query.getSortProperties() ) );