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>
public class BindLeftJoinIteration extends LookAheadIteration<BindingSet>
ALookAheadIterationfor 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
Fields Modifier and Type Field Description protected List<BindingSet>bindingsprotected ListIterator<BindingSet>bindingsIteratorprotected CloseableIteration<BindingSet>iterprotected org.eclipse.collections.impl.set.mutable.primitive.IntHashSetseenBindingIndexes
-
Constructor Summary
Constructors Constructor Description BindLeftJoinIteration(CloseableIteration<BindingSet> iter, List<BindingSet> bindings)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected BindingSetconvert(BindingSet bIn, int bIndex)protected BindingSetgetNextElement()Gets the next element.protected voidhandleClose()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 Detail
-
iter
protected final CloseableIteration<BindingSet> iter
-
bindings
protected final List<BindingSet> bindings
-
seenBindingIndexes
protected org.eclipse.collections.impl.set.mutable.primitive.IntHashSet seenBindingIndexes
-
bindingsIterator
protected final ListIterator<BindingSet> bindingsIterator
-
-
Constructor Detail
-
BindLeftJoinIteration
public BindLeftJoinIteration(CloseableIteration<BindingSet> iter, List<BindingSet> bindings)
-
-
Method Detail
-
getNextElement
protected BindingSet 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
protected BindingSet convert(BindingSet bIn, int bIndex) throws QueryEvaluationException
- Throws:
QueryEvaluationException
-
-