Class BindLeftJoinIteration
java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<BindingSet>
org.eclipse.rdf4j.common.iteration.LookAheadIteration<BindingSet>
org.eclipse.rdf4j.federated.evaluation.iterator.BindLeftJoinIteration
- All Implemented Interfaces:
AutoCloseable, Iterator<BindingSet>, CloseableIteration<BindingSet>
A
LookAheadIteration for processing bind left join results (i.e., result of joining OPTIONAL clauses)
Algorithm:
- execute left bind join using regular bound join query
- process result iteration similar to
BoundJoinVALUESConversionIteration - remember seen set of bindings (using index) and add original bindings to those, i.e. put to result return all non-seen bindings directly from the input
- Author:
- Andreas Schwarte
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final List<BindingSet> protected final ListIterator<BindingSet> protected final CloseableIteration<BindingSet> protected org.eclipse.collections.impl.set.mutable.primitive.IntHashSetFields inherited from interface CloseableIteration
EMPTY_STATEMENT_ITERATION -
Constructor Summary
ConstructorsConstructorDescriptionBindLeftJoinIteration(CloseableIteration<BindingSet> iter, List<BindingSet> bindings) -
Method Summary
Modifier and TypeMethodDescriptionprotected BindingSetconvert(BindingSet bIn, int bIndex) protected BindingSetGets the next element.protected voidCalled byAbstractCloseableIteration.close()when it is called for the first time.Methods inherited from class LookAheadIteration
hasNext, next, removeMethods inherited from class AbstractCloseableIteration
close, isClosedMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface CloseableIteration
streamMethods inherited from interface Iterator
forEachRemaining
-
Field Details
-
iter
-
bindings
-
seenBindingIndexes
protected org.eclipse.collections.impl.set.mutable.primitive.IntHashSet seenBindingIndexes -
bindingsIterator
-
-
Constructor Details
-
BindLeftJoinIteration
-
-
Method Details
-
getNextElement
Description copied from class:LookAheadIterationGets the next element. Subclasses should implement this method so that it returns the next element.- Specified by:
getNextElementin classLookAheadIteration<BindingSet>- Returns:
- The next element, or null if no more elements are available.
-
handleClose
protected void handleClose()Description copied from class:AbstractCloseableIterationCalled byAbstractCloseableIteration.close()when it is called for the first time. This method is only called once on each iteration. By default, this method does nothing.- Specified by:
handleClosein classAbstractCloseableIteration<BindingSet>
-
convert
- Throws:
QueryEvaluationException
-