@Override public int count() { int i = 0; for ( @SuppressWarnings("unused") Feature f : this ) { i++; } close(); return i; } }
@Override public int count() { int i = 0; for ( @SuppressWarnings("unused") Feature f : this ) { i++; } close(); return i; } }
@Override public int count() { int i = 0; for ( @SuppressWarnings("unused") Feature f : this ) { i++; } close(); return i; }
if ( consumerMessage != null && consumerMessage.isClosing() ) { LOG.debug( "Producer halted" ); producerQueue.put( new ProducerFeatureMessage( f ) ); try { LOG.debug( "Exception produced" ); producerQueue.put( new ProducerExceptionMessage( t ) ); } catch ( InterruptedException e ) { throw new RuntimeException( e ); featureInputStream.close(); producerQueue.put( new ProducerFinishedMessage() ); } catch ( InterruptedException e ) { throw new RuntimeException( e );
@Override public void close() { rs.close(); }
@Override public FeatureInputStream query( final Query[] queries ) throws FeatureStoreException, FilterEvaluationException { Iterator<FeatureInputStream> rsIter = new Iterator<FeatureInputStream>() { int i = 0; @Override public boolean hasNext() { return i < queries.length; } @Override public FeatureInputStream next() { if ( !hasNext() ) { throw new NoSuchElementException(); } FeatureInputStream rs; try { rs = query( queries[i++] ); } catch ( Exception e ) { e.printStackTrace(); throw new RuntimeException( e.getMessage(), e ); } return rs; } @Override public void remove() { throw new UnsupportedOperationException(); } }; return new CombinedFeatureInputStream( rsIter ); }
@Override public int queryHits( org.deegree.feature.persistence.query.Query query ) throws FilterEvaluationException, FeatureStoreException { return query( query ).toCollection().size(); }
void close() { if ( hasNext() ) { try { LOG.debug( "Requesting producer to finish" ); consumerQueue.put( new ConsumerClosingMessage() ); } catch ( InterruptedException e ) { throw new RuntimeException( e ); } while ( hasNext() ) { next(); } LOG.debug( "Producer finished" ); } else { LOG.debug( "Producer already finished" ); } } }
/** * Creates a new {@link ThreadedFeatureInputStreamTest} based on the given {@link FeatureInputStream}. * * @param featureInputStream * @param queueSize */ public ThreadedFeatureInputStream( final FeatureInputStream featureInputStream, final int queueSize ) { final BlockingQueue<ProducerMessage> producerQueue = new ArrayBlockingQueue<ProducerMessage>( queueSize, true ); final BlockingQueue<ConsumerMessage> consumerQueue = new ArrayBlockingQueue<ConsumerMessage>( 1, true ); iterator = new Consumer( producerQueue, consumerQueue ); service.execute( new Producer( featureInputStream, producerQueue, consumerQueue ) ); }
public int queryHits( Query query ) throws FeatureStoreException, FilterEvaluationException { // TODO SELECT COUNT return query( query ).count(); }
@Override public int count() { int i = 0; for ( @SuppressWarnings("unused") Feature f : this ) { i++; } close(); return i; } }
@Override public void close() { iterator.close(); }
@Override public Feature next() { if ( !hasNext() ) { throw new NoSuchElementException(); } nextCalled = true; return next; }
@Override public Feature next() { if ( !hasNext() ) { throw new NoSuchElementException(); } nextRead = true; return next; }
@Override public int count() { close(); return fc.size(); } }
@Override public boolean hasNext() { if ( lastMessage == null ) { try { LOG.debug( "Initial message consumed" ); lastMessage = producerQueue.take(); } catch ( InterruptedException e ) { throw new RuntimeException( e ); } } return !lastMessage.isFinished(); }
@Override public FeatureInputStream query( final Query[] queries ) throws FeatureStoreException, FilterEvaluationException { Iterator<FeatureInputStream> rsIter = new Iterator<FeatureInputStream>() { int i = 0; @Override public boolean hasNext() { return i < queries.length; } @Override public FeatureInputStream next() { if ( !hasNext() ) { throw new NoSuchElementException(); } FeatureInputStream rs; try { rs = query( queries[i++] ); } catch ( Exception e ) { e.printStackTrace(); throw new RuntimeException( e.getMessage(), e ); } return rs; } @Override public void remove() { throw new UnsupportedOperationException(); } }; return new CombinedFeatureInputStream( rsIter ); }
@Override public int queryHits( Query query ) throws FeatureStoreException, FilterEvaluationException { // TODO return query( query ).toCollection().size(); }
private static FeatureCollection clearDuplicates( FeatureInputStream rs ) { FeatureCollection col = null; try { col = new GenericFeatureCollection(); for ( Feature f : rs ) { if ( !col.contains( f ) ) { col.add( f ); } } } finally { rs.close(); } return col; }