@Override public int count() { int i = 0; for ( @SuppressWarnings("unused") Feature f : this ) { i++; } close(); return i; }
@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(); } } }
ThreadedFeatureInputStream.shutdown(); } catch ( Throwable e ) {