Package org.eclipse.rdf4j.query.resultio.helpers

## Class BackgroundTupleResult

- java.lang.Object
- - org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E,​X>
  - - org.eclipse.rdf4j.common.iteration.IterationWrapper<BindingSet,​QueryEvaluationException>
    - - org.eclipse.rdf4j.query.impl.IteratingTupleQueryResult
      - - org.eclipse.rdf4j.query.resultio.helpers.BackgroundTupleResult

- All Implemented Interfaces:
    `AutoCloseable`, `Iterable<BindingSet>`, `Runnable`, `CloseableIteration<BindingSet,​QueryEvaluationException>`, `Iteration<BindingSet,​QueryEvaluationException>`, `QueryResult<BindingSet>`, `QueryResultHandler`, `TupleQueryResult`, `TupleQueryResultHandler`

      public class BackgroundTupleResult
      extends IteratingTupleQueryResult
      implements Runnable, TupleQueryResultHandler

  Provides concurrent access to tuple results as they are being parsed.
  Author:
    James Leigh

- - ### Field Summary

    - ### Fields inherited from class org.eclipse.rdf4j.common.iteration.IterationWrapper

      `wrappedIter`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BackgroundTupleResult​(QueueCursor<BindingSet> queue, TupleQueryResultParser parser, InputStream in)` |
    `BackgroundTupleResult​(TupleQueryResultParser parser, InputStream in, WeakReference<?> callerRef)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `endQueryResult()` | Indicates the end of a sequence of solutions.
    `List<String>` | `getBindingNames()` | Gets the names of the bindings, in order of projection.
    `void` | `handleBoolean​(boolean value)` | Handles the specified boolean value.
    `protected void` | `handleClose()` | Closes this Iteration and also closes the wrapped Iteration if it is a `CloseableIteration`.
    `void` | `handleLinks​(List<String> linkUrls)` | Handles the links elements which are present in SPARQL Results JSON and SPARQL Results XML documents in the header.
    `void` | `handleSolution​(BindingSet bindingSet)` | Handles a solution.
    `void` | `run()` |
    `void` | `startQueryResult​(List<String> bindingNames)` | Indicates the start of a sequence of Solutions.

    - ### Methods inherited from class org.eclipse.rdf4j.common.iteration.IterationWrapper

      `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

      `close`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

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

      `hasNext, next, remove, stream`

    - ### Methods inherited from interface org.eclipse.rdf4j.query.QueryResult

      `iterator`

- - ### Constructor Detail

    - #### BackgroundTupleResult

          public BackgroundTupleResult​(TupleQueryResultParser parser,
                                       InputStream in,
                                       WeakReference<?> callerRef)

    - #### BackgroundTupleResult

          public BackgroundTupleResult​(QueueCursor<BindingSet> queue,
                                       TupleQueryResultParser parser,
                                       InputStream in)

  - ### Method Detail

    - #### handleClose

          protected void handleClose()
                              throws QueryEvaluationException

      Description copied from class: `IterationWrapper`
      Closes this Iteration and also closes the wrapped Iteration if it is a `CloseableIteration`.
      Overrides:
        `handleClose` in class `IterationWrapper<BindingSet,​QueryEvaluationException>`
      Throws:
        `QueryEvaluationException`

    - #### getBindingNames

          public List<String> getBindingNames()

      Description copied from interface: `TupleQueryResult`
      Gets the names of the bindings, in order of projection.
      Specified by:
        `getBindingNames` in interface `TupleQueryResult`
      Overrides:
        `getBindingNames` in class `IteratingTupleQueryResult`
      Returns:
        The binding names, in order of projection.

    - #### run

          public void run()

      Specified by:
        `run` in interface `Runnable`

    - #### startQueryResult

          public void startQueryResult​(List<String> bindingNames)
                                throws TupleQueryResultHandlerException

      Description copied from interface: `QueryResultHandler`
      Indicates the start of a sequence of Solutions. The supplied bindingNames are an indication of the values that are in the Solutions. For example, a SPARQL query like select ?X ?Y where { ?X ?P ?Y } will have binding names X and Y.
      Specified by:
        `startQueryResult` in interface `QueryResultHandler`
      Parameters:
        `bindingNames` - An ordered set of binding names.
      Throws:
        `TupleQueryResultHandlerException` - If there was an error during the starting of the query result handler. This exception may be thrown if the `QueryResultHandler.handleBoolean(boolean)` method was called before this method and the handler cannot process both boolean and tuple results simultaneously.

    - #### handleSolution

          public void handleSolution​(BindingSet bindingSet)
                              throws TupleQueryResultHandlerException

      Description copied from interface: `QueryResultHandler`
      Handles a solution.
      Specified by:
        `handleSolution` in interface `QueryResultHandler`
      Parameters:
        `bindingSet` - A single set of tuple results, with binding names bound to values. Each of the binding names in the solution must have previously been registered with the `QueryResultHandler.startQueryResult(List)` method.
      Throws:
        `TupleQueryResultHandlerException` - If there was an error during the handling of the query solution. This exception may be thrown if the `QueryResultHandler.handleBoolean(boolean)` method was called before this method and the handler cannot process both boolean and tuple results simultaneously.

    - #### endQueryResult

          public void endQueryResult()
                              throws TupleQueryResultHandlerException

      Description copied from interface: `QueryResultHandler`
      Indicates the end of a sequence of solutions.
      Specified by:
        `endQueryResult` in interface `QueryResultHandler`
      Throws:
        `TupleQueryResultHandlerException` - If there was an error during the ending of the query result handler. This exception may be thrown if the `QueryResultHandler.handleBoolean(boolean)` method was called before this method and the handler cannot process both boolean and tuple results simultaneously.

    - #### handleBoolean

          public void handleBoolean​(boolean value)
                             throws QueryResultHandlerException

      Description copied from interface: `QueryResultHandler`
      Handles the specified boolean value.
      Specified by:
        `handleBoolean` in interface `QueryResultHandler`
      Parameters:
        `value` - The boolean value to handle.
      Throws:
        `QueryResultHandlerException` - If there was an error during the handling of this value. This exception may be thrown if the `QueryResultHandler.startQueryResult(List)`, `QueryResultHandler.handleSolution(BindingSet)` or `QueryResultHandler.endQueryResult()` methods were called before this method was called, and the handler cannot process both boolean and tuple results simultaneously.

    - #### handleLinks

          public void handleLinks​(List<String> linkUrls)
                           throws QueryResultHandlerException

      Description copied from interface: `QueryResultHandler`
      Handles the links elements which are present in SPARQL Results JSON and SPARQL Results XML documents in the header.

      NOTE: If the format does not support links, it must silently ignore a call to this method.

      An accumulating handler should accumulate these links.

      Specified by:
        `handleLinks` in interface `QueryResultHandler`
      Parameters:
        `linkUrls` - The URLs of the links to handle.
      Throws:
        `QueryResultHandlerException` - If there was an error handling the set of link URLs. This error is not thrown in cases where links are not supported.
      See Also:
        "link"