org.openrdf.query.algebra.evaluation.federation
Class ServiceJoinIterator

java.lang.Object
  extended by info.aduna.iteration.CloseableIterationBase<E,X>
      extended by info.aduna.iteration.LookAheadIteration<T,QueryEvaluationException>
          extended by org.openrdf.query.algebra.evaluation.federation.JoinExecutorBase<BindingSet>
              extended by org.openrdf.query.algebra.evaluation.federation.ServiceJoinIterator
All Implemented Interfaces:
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
protected  Service service
           
protected  EvaluationStrategy strategy
           
 
Fields inherited from class org.openrdf.query.algebra.evaluation.federation.JoinExecutorBase
bindings, closed, evaluationThread, finished, leftIter, NEXT_JOIN_ID, rightArg, rightIter, rightQueue
 
Constructor Summary
ServiceJoinIterator(CloseableIteration<BindingSet,QueryEvaluationException> leftIter, Service service, BindingSet bindings, EvaluationStrategy strategy)
          Construct a service join iteration to use vectored evaluation.
 
Method Summary
protected  void handleBindings()
          Implementations must implement this method to handle bindings.
 
Methods inherited from class org.openrdf.query.algebra.evaluation.federation.JoinExecutorBase
addResult, done, getNextElement, handleClose, isFinished, run, toss
 
Methods inherited from class info.aduna.iteration.LookAheadIteration
hasNext, next, remove
 
Methods inherited from class info.aduna.iteration.CloseableIterationBase
close, isClosed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 -
rightArg -
bindings -
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 template while (!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 class JoinExecutorBase<BindingSet>
Throws:
Exception


Copyright © 2001-2012 Aduna. All Rights Reserved.