Class StatementPatternQueryEvaluationStep.ConvertStatementToBindingSetIterator
java.lang.Object
org.eclipse.rdf4j.query.algebra.evaluation.impl.evaluationsteps.StatementPatternQueryEvaluationStep.ConvertStatementToBindingSetIterator
- All Implemented Interfaces:
AutoCloseable
,CloseableIteration<BindingSet,
,QueryEvaluationException> Iteration<BindingSet,
QueryEvaluationException>
- Enclosing class:
StatementPatternQueryEvaluationStep
private static final class StatementPatternQueryEvaluationStep.ConvertStatementToBindingSetIterator
extends Object
implements CloseableIteration<BindingSet,QueryEvaluationException>
Converts statements into the required bindingsets. A lot of work is done in the constructor and then uses
invokedynamic code with lambdas for the actual conversion.
This allows avoiding of significant work during the iteration. Which pays of if the iteration is long, otherwise it of course is an unneeded expense.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BiConsumer
<MutableBindingSet, Statement> private boolean
private final QueryEvaluationContext
private final CloseableIteration
<? extends Statement, ? extends QueryEvaluationException> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
ConvertStatementToBindingSetIterator
(CloseableIteration<? extends Statement, ? extends QueryEvaluationException> iteration, BiConsumer<MutableBindingSet, Statement> action, QueryEvaluationContext context) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes this iteration, freeing any resources that it is holding.private BindingSet
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).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
-
Field Details
-
action
-
context
-
iteration
-
closed
private boolean closed
-
-
Constructor Details
-
ConvertStatementToBindingSetIterator
private ConvertStatementToBindingSetIterator(CloseableIteration<? extends Statement, ? extends QueryEvaluationException> iteration, BiConsumer<MutableBindingSet, Statement> action, QueryEvaluationContext context)
-
-
Method Details
-
convert
-
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
-