Class ServiceJoinIterator
- java.lang.Object
-
- org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E,X>
-
- org.eclipse.rdf4j.common.iteration.LookAheadIteration<T,QueryEvaluationException>
-
- org.eclipse.rdf4j.repository.sparql.federation.JoinExecutorBase<T>
-
- org.eclipse.rdf4j.query.algebra.evaluation.federation.JoinExecutorBase<BindingSet>
-
- org.eclipse.rdf4j.query.algebra.evaluation.federation.ServiceJoinIterator
-
- All Implemented Interfaces:
AutoCloseable
,CloseableIteration<BindingSet,QueryEvaluationException>
,Iteration<BindingSet,QueryEvaluationException>
public class ServiceJoinIterator extends JoinExecutorBase<BindingSet>
Iterator for efficient SERVICE evaluation (vectored). SERVICE is the right handside argument of this join.- Author:
- Andreas Schwarte
-
-
Field Summary
Fields Modifier and Type Field Description protected Service
service
protected EvaluationStrategy
strategy
-
Fields inherited from class org.eclipse.rdf4j.repository.sparql.federation.JoinExecutorBase
bindings, closed, finished, leftIter, NEXT_JOIN_ID, rightArg, rightIter, rightQueue
-
-
Constructor Summary
Constructors Constructor Description ServiceJoinIterator(CloseableIteration<BindingSet,QueryEvaluationException> leftIter, Service service, BindingSet bindings, EvaluationStrategy strategy)
Construct a service join iteration to use vectored evaluation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
handleBindings()
Implementations must implement this method to handle bindings.-
Methods inherited from class org.eclipse.rdf4j.repository.sparql.federation.JoinExecutorBase
addResult, done, getNextElement, handleClose, isFinished, run, toss
-
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
-
-
-
-
Field Detail
-
service
protected Service service
-
strategy
protected EvaluationStrategy strategy
-
-
Constructor Detail
-
ServiceJoinIterator
public ServiceJoinIterator(CloseableIteration<BindingSet,QueryEvaluationException> leftIter, Service service, BindingSet bindings, EvaluationStrategy strategy) throws QueryEvaluationException
Construct a service join iteration to use vectored evaluation. The constructor automatically starts evaluation.- Parameters:
leftIter
-service
-bindings
-strategy
-- Throws:
QueryEvaluationException
-
-
Method Detail
-
handleBindings
protected void handleBindings() throws Exception
Description copied from class:JoinExecutorBase
Implementations must implement this method to handle bindings. Use the following as a templatewhile (!closed && leftIter.hasNext()) { // your code }
and add results to rightQueue. Note that addResult() is implemented synchronized and thus thread safe. In case you can guarantee sequential access, it is also possible to directly access rightQueue- Specified by:
handleBindings
in classJoinExecutorBase<BindingSet>
- Throws:
Exception
-
-