Class RepositoryFederatedService.BatchingServiceIteration
- 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<BindingSet>
-
- org.eclipse.rdf4j.repository.sparql.federation.RepositoryFederatedService.BatchingServiceIteration
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,CloseableIteration<BindingSet,QueryEvaluationException>
,Iteration<BindingSet,QueryEvaluationException>
- Enclosing class:
- RepositoryFederatedService
private class RepositoryFederatedService.BatchingServiceIteration extends JoinExecutorBase<BindingSet>
A convenience iteration for SERVICE expression which evaluates intermediate results in batches and manages all results. UsesJoinExecutorBase
facilities to guarantee correct access to the final results
-
-
Field Summary
Fields Modifier and Type Field Description private int
blockSize
private Service
service
-
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 BatchingServiceIteration(CloseableIteration<BindingSet,QueryEvaluationException> inputBindings, int blockSize, Service service)
-
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
-
blockSize
private final int blockSize
-
service
private final Service service
-
-
Constructor Detail
-
BatchingServiceIteration
public BatchingServiceIteration(CloseableIteration<BindingSet,QueryEvaluationException> inputBindings, int blockSize, Service service) throws QueryEvaluationException
- Parameters:
inputBindings
-- Throws:
QueryEvaluationException
-
-
Method Detail
-
handleBindings
protected void handleBindings() throws java.lang.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:
java.lang.Exception
-
-