Class BindLeftJoinIteration
java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E>
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.IntHashSet -
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 org.eclipse.rdf4j.common.iteration.LookAheadIteration
hasNext, next, removeMethods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.rdf4j.common.iteration.CloseableIteration
streamMethods 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: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
-