Class SPARQLCrossProductIteration
- java.lang.Object
-
- org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E,X>
-
- org.eclipse.rdf4j.common.iteration.LookAheadIteration<BindingSet,QueryEvaluationException>
-
- org.eclipse.rdf4j.repository.sparql.federation.SPARQLCrossProductIteration
-
- All Implemented Interfaces:
AutoCloseable,CloseableIteration<BindingSet,QueryEvaluationException>,Iteration<BindingSet,QueryEvaluationException>
public class SPARQLCrossProductIteration extends LookAheadIteration<BindingSet,QueryEvaluationException>
Iteration which forms the cross product of a list of materialized input bindings with each result obtained from the inner iteration. Example:inputBindings := {b1, b2, ...} resultIteration := {r1, r2, ...} getNextElement() returns (r1,b1), (r1, b2), ..., (r2, b1), (r2, b2), ... i.e. compute the cross product per result binding Note that this class is a fully equivalent copy ofCrossProductIteration, and is only included here to avoid a circular dependency between the algebra-evaluation module and the sparql-repository module.- Author:
- Andreas Schwarte
-
-
Field Summary
Fields Modifier and Type Field Description protected BindingSetcurrentInputBindingprotected List<BindingSet>inputBindingsprotected Iterator<BindingSet>inputBindingsIteratorprotected CloseableIteration<BindingSet,QueryEvaluationException>resultIteration
-
Constructor Summary
Constructors Constructor Description SPARQLCrossProductIteration(CloseableIteration<BindingSet,QueryEvaluationException> resultIteration, List<BindingSet> inputBindings)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
-
-
-
-
Field Detail
-
inputBindings
protected final List<BindingSet> inputBindings
-
resultIteration
protected final CloseableIteration<BindingSet,QueryEvaluationException> resultIteration
-
inputBindingsIterator
protected Iterator<BindingSet> inputBindingsIterator
-
currentInputBinding
protected BindingSet currentInputBinding
-
-
Constructor Detail
-
SPARQLCrossProductIteration
public SPARQLCrossProductIteration(CloseableIteration<BindingSet,QueryEvaluationException> resultIteration, List<BindingSet> inputBindings)
-
-
Method Detail
-
getNextElement
protected BindingSet getNextElement() throws QueryEvaluationException
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,QueryEvaluationException>- Returns:
- The next element, or null if no more elements are available.
- Throws:
QueryEvaluationException
-
handleClose
protected void handleClose() throws QueryEvaluationExceptionDescription 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.- Overrides:
handleClosein classLookAheadIteration<BindingSet,QueryEvaluationException>- Throws:
QueryEvaluationException
-
-