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
Modifier and TypeFieldDescriptionprotected final List
<BindingSet> protected final ListIterator
<BindingSet> protected final CloseableIteration
<BindingSet> protected org.eclipse.collections.impl.set.mutable.primitive.IntHashSet
-
Constructor Summary
ConstructorDescriptionBindLeftJoinIteration
(CloseableIteration<BindingSet> iter, List<BindingSet> bindings) -
Method Summary
Modifier and TypeMethodDescriptionprotected BindingSet
convert
(BindingSet bIn, int bIndex) protected BindingSet
Gets the next element.protected void
Called byAbstractCloseableIteration.close()
when it is called for the first time.Methods inherited from class org.eclipse.rdf4j.common.iteration.LookAheadIteration
hasNext, next, remove
Methods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosed
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
Methods inherited from interface java.util.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:LookAheadIteration
Gets the next element. Subclasses should implement this method so that it returns the next element.- Specified by:
getNextElement
in classLookAheadIteration<BindingSet>
- Returns:
- The next element, or null if no more elements are available.
-
handleClose
protected void handleClose()Description copied from class:AbstractCloseableIteration
Called 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:
handleClose
in classAbstractCloseableIteration<BindingSet>
-
convert
- Throws:
QueryEvaluationException
-