Package org.eclipse.rdf4j.federated.evaluation.union

## Class SynchronousWorkerUnion<T>

- java.lang.Object
- - org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E,​X>
  - - org.eclipse.rdf4j.common.iteration.LookAheadIteration<T,​QueryEvaluationException>
    - - org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelExecutorBase<T>
      - - org.eclipse.rdf4j.federated.evaluation.union.UnionExecutorBase<T>
        - - org.eclipse.rdf4j.federated.evaluation.union.WorkerUnionBase<T>
          - - org.eclipse.rdf4j.federated.evaluation.union.SynchronousWorkerUnion<T>

- All Implemented Interfaces:
    `AutoCloseable`, `Runnable`, `CloseableIteration<T,​QueryEvaluationException>`, `Iteration<T,​QueryEvaluationException>`, `ParallelExecutor<T>`

      public class SynchronousWorkerUnion<T>
      extends WorkerUnionBase<T>

  Synchronous execution of union tasks, i.e. one after the other. The union result is contained in this iteration. Note that the union operation is to be executed with the `ParallelExecutorBase.run()` method
  Author:
    Andreas Schwarte

- - ### Field Summary

    - ### Fields inherited from class org.eclipse.rdf4j.federated.evaluation.union.WorkerUnionBase

      `tasks`

    - ### Fields inherited from class org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelExecutorBase

      `evaluationThread, executorId, finished, log, NEXT_EXECUTOR_ID, queryInfo, rightIter, rightQueue, strategy`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SynchronousWorkerUnion​(FederationEvalStrategy strategy, QueryInfo queryInfo)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `union()` | Note: this method must block until the union is executed completely.

    - ### Methods inherited from class org.eclipse.rdf4j.federated.evaluation.union.WorkerUnionBase

      `addTask`

    - ### Methods inherited from class org.eclipse.rdf4j.federated.evaluation.union.UnionExecutorBase

      `getExecutorType, performExecution`

    - ### Methods inherited from class org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelExecutorBase

      `addResult, checkTimeout, done, getDisplayId, getId, getNextElement, getQueryInfo, handleClose, isFinished, run, toss, toString`

    - ### 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, wait, wait, wait`

    - ### Methods inherited from interface org.eclipse.rdf4j.common.iteration.Iteration

      `stream`

- - ### Constructor Detail

    - #### SynchronousWorkerUnion

          public SynchronousWorkerUnion​(FederationEvalStrategy strategy,
                                        QueryInfo queryInfo)

  - ### Method Detail

    - #### union

          protected void union()
                        throws Exception

      Description copied from class: `UnionExecutorBase`
      Note: this method must block until the union is executed completely. Otherwise the result queue is marked as committed while this isn't the case. The blocking behavior in general is no problem: If you need concurrent access to the result (i.e. pipelining) just run the union in a separate thread. Access to the result iteration is synchronized.
      Specified by:
        `union` in class `UnionExecutorBase<T>`
      Throws:
        `Exception`