Class ConsumingIteration
- java.lang.Object
-
- org.eclipse.rdf4j.federated.evaluation.iterator.ConsumingIteration
-
- All Implemented Interfaces:
AutoCloseable,CloseableIteration<BindingSet,QueryEvaluationException>,Iteration<BindingSet,QueryEvaluationException>
public class ConsumingIteration extends Object implements CloseableIteration<BindingSet,QueryEvaluationException>
A specializedCloseableIterationthat consumes part (or the entire input iteration if it fits into the buffer) and keeps data for further processing in memory. If the buffer is full, the remaining items will be read from the iteration lazily. This implementation can be used to avoid blocking behavior in HTTP connection streams, i.e. to process results in memory and close the underlying HTTP stream.- Author:
- Andreas Schwarte
-
-
Constructor Summary
Constructors Constructor Description ConsumingIteration(CloseableIteration<BindingSet,QueryEvaluationException> iter, int max)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes this iteration, freeing any resources that it is holding.booleanhasNext()Returns true if the iteration has more elements.BindingSetnext()Returns the next element in the iteration.voidremove()Removes from the underlying collection the last element returned by the iteration (optional operation).-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.common.iteration.CloseableIteration
stream
-
-
-
-
Constructor Detail
-
ConsumingIteration
public ConsumingIteration(CloseableIteration<BindingSet,QueryEvaluationException> iter, int max) throws QueryEvaluationException
- Parameters:
iter- iteration to be consumedmax- the number of results to be consumed.- Throws:
QueryEvaluationException
-
-
Method Detail
-
hasNext
public boolean hasNext() throws QueryEvaluationExceptionDescription copied from interface:IterationReturns true if the iteration has more elements. (In other words, returns true ifIteration.next()would return an element rather than throwing a NoSuchElementException.)- Specified by:
hasNextin interfaceIteration<BindingSet,QueryEvaluationException>- Returns:
- true if the iteration has more elements.
- Throws:
QueryEvaluationException
-
next
public BindingSet next() throws QueryEvaluationException
Description copied from interface:IterationReturns the next element in the iteration.- Specified by:
nextin interfaceIteration<BindingSet,QueryEvaluationException>- Returns:
- the next element in the iteration.
- Throws:
QueryEvaluationException
-
remove
public void remove() throws QueryEvaluationExceptionDescription copied from interface:IterationRemoves from the underlying collection the last element returned by the iteration (optional operation). This method can be called only once per call to next.- Specified by:
removein interfaceIteration<BindingSet,QueryEvaluationException>- Throws:
QueryEvaluationException
-
close
public void close() throws QueryEvaluationExceptionDescription copied from interface:CloseableIterationCloses this iteration, freeing any resources that it is holding. If the iteration has already been closed then invoking this method has no effect.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseableIteration<BindingSet,QueryEvaluationException>- Throws:
QueryEvaluationException
-
-