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

## Class QueryResultCollector

- java.lang.Object
- - org.eclipse.rdf4j.query.resultio.helpers.QueryResultCollector

- All Implemented Interfaces:
    `BooleanQueryResultHandler`, `QueryResultHandler`, `TupleQueryResultHandler`

      public class QueryResultCollector
      extends Object
      implements QueryResultHandler, TupleQueryResultHandler, BooleanQueryResultHandler

  An implementation of the `QueryResultHandler` interface that is able to collect a single result from either Boolean or Tuple results simultaneously.

  The `List`s that are returned by this interface are immutable.

  Author:
    Peter Ansell

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `QueryResultCollector()` |

  - ### 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()` | Returns a collection of binding names collected.
    `List<BindingSet>` | `getBindingSets()` |
    `boolean` | `getBoolean()` | If `getHandledBoolean()` returns true this method returns the boolean that was last found using `handleBoolean(boolean)`
    `boolean` | `getHandledBoolean()` | Determines whether `handleBoolean(boolean)` was called for this collector.
    `boolean` | `getHandledTuple()` | Determines whether `endQueryResult()` was called after the last calls to `startQueryResult(List)` and optionally calls to `handleSolution(BindingSet)`.
    `List<String>` | `getLinks()` |
    `void` | `handleBoolean​(boolean value)` | Handles the specified boolean value.
    `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` | `startQueryResult​(List<String> bindingNames)` | Indicates the start of a sequence of Solutions.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### QueryResultCollector

          public QueryResultCollector()

  - ### Method Detail

    - #### 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.

    - #### 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.

    - #### 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"

    - #### getHandledBoolean

          public boolean getHandledBoolean()

      Determines whether `handleBoolean(boolean)` was called for this collector.
      Returns:
        True if there was a boolean handled by this collector.

    - #### getBoolean

          public boolean getBoolean()
                             throws QueryResultHandlerException

      If `getHandledBoolean()` returns true this method returns the boolean that was last found using `handleBoolean(boolean)`

      If `getHandledBoolean()` returns false this method throws a `QueryResultHandlerException` indicating that a response could not be provided.

      Returns:
        The boolean value that was collected.
      Throws:
        `QueryResultHandlerException` - If there was no boolean value collected.

    - #### getHandledTuple

          public boolean getHandledTuple()

      Determines whether `endQueryResult()` was called after the last calls to `startQueryResult(List)` and optionally calls to `handleSolution(BindingSet)`.
      Returns:
        True if there was a call to `endQueryResult()` after the last calls to `startQueryResult(List)` and `handleSolution(BindingSet)`.

    - #### getBindingNames

          public List<String> getBindingNames()
                                       throws QueryResultHandlerException

      Returns a collection of binding names collected.
      Returns:
        An immutable list of `String`s that were collected as the binding names.
      Throws:
        `QueryResultHandlerException` - If the tuple results set was not successfully collected, as signalled by a call to `endQueryResult()`.

    - #### getBindingSets

          public List<BindingSet> getBindingSets()
                                          throws QueryResultHandlerException

      Returns:
        An immutable list of `BindingSet`s that were collected as the tuple results.
      Throws:
        `QueryResultHandlerException` - If the tuple results set was not successfully collected, as signalled by a call to `endQueryResult()`.

    - #### getLinks

          public List<String> getLinks()

      Returns:
        A list of links accumulated from calls to `handleLinks(List)`.