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 specialized
CloseableIteration
that 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
ConstructorDescriptionConsumingIteration
(CloseableIteration<BindingSet, QueryEvaluationException> iter, int max) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes this iteration, freeing any resources that it is holding.boolean
hasNext()
Returns true if the iteration has more elements.next()
Returns the next element in the iteration.void
remove()
Removes from the underlying collection the last element returned by the iteration (optional operation).
-
Constructor Details
-
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 Details
-
hasNext
Description copied from interface:Iteration
Returns 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:
hasNext
in interfaceIteration<BindingSet,
QueryEvaluationException> - Returns:
- true if the iteration has more elements.
- Throws:
QueryEvaluationException
-
next
Description copied from interface:Iteration
Returns the next element in the iteration.- Specified by:
next
in interfaceIteration<BindingSet,
QueryEvaluationException> - Returns:
- the next element in the iteration.
- Throws:
QueryEvaluationException
-
remove
Description copied from interface:Iteration
Removes 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:
remove
in interfaceIteration<BindingSet,
QueryEvaluationException> - Throws:
QueryEvaluationException
-
close
Description copied from interface:CloseableIteration
Closes 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:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseableIteration<BindingSet,
QueryEvaluationException> - Throws:
QueryEvaluationException
-