org.eclipse.rdf4j.query.resultio.binary

## Class BinaryQueryResultWriter

- java.lang.Object
- - org.eclipse.rdf4j.query.resultio.AbstractQueryResultWriter
  - - org.eclipse.rdf4j.query.resultio.binary.BinaryQueryResultWriter

- All Implemented Interfaces:
    ByteSink, Sink, QueryResultHandler, QueryResultWriter, TupleQueryResultWriter, TupleQueryResultHandler

      public class BinaryQueryResultWriter
      extends AbstractQueryResultWriter
      implements TupleQueryResultWriter, ByteSink

  Writer for the binary tuple result format. The format is explained in `BinaryQueryResultConstants`.
  Author:
    Arjohn Kampman

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `tupleVariablesFound`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BinaryQueryResultWriter(OutputStream out)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `endHeader()` Indicates the end of the header.
    `void` | `endQueryResult()` Indicates the end of a sequence of solutions.
    `void` | `error(QueryErrorType errType, String msg)` Writes an error msg to the stream.
    `OutputStream` | `getOutputStream()` get the `OutputStream` used by this `ByteSink`.
    `TupleQueryResultFormat` | `getQueryResultFormat()` Gets the query result format that this writer uses.
    `Collection<RioSetting<?>>` | `getSupportedSettings()`
    `TupleQueryResultFormat` | `getTupleQueryResultFormat()` Gets the query result format that this writer uses.
    `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` | `handleNamespace(String prefix, String uri)` Handles a namespace prefix declaration.
    `protected void` | `handleSolutionImpl(BindingSet bindingSet)` Extending classes must implement this method instead of overriding `AbstractQueryResultWriter.handleSolution(BindingSet)` in order to benefit from automatic handling of RDF* encoding.
    `void` | `handleStylesheet(String stylesheetUrl)` Handles a stylesheet URL.
    `void` | `startDocument()` Indicates the start of the document.
    `void` | `startHeader()` Indicates the start of the header.
    `void` | `startQueryResult(List<String> bindingNames)` Indicates the start of a sequence of Solutions.

    - ### Methods inherited from class org.eclipse.rdf4j.query.resultio.AbstractQueryResultWriter

      `getFileFormat, getWriterConfig, handleSolution, setWriterConfig, xsdStringToPlainLiteral`

    - ### 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.query.resultio.QueryResultWriter

      `getWriterConfig, setWriterConfig`

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

      `handleSolution`

    - ### Methods inherited from interface org.eclipse.rdf4j.common.io.Sink

      `acceptsFileFormat, getFileFormat`

- - ### Field Detail

    - #### tupleVariablesFound

          protected boolean tupleVariablesFound

  - ### Constructor Detail

    - #### BinaryQueryResultWriter

          public BinaryQueryResultWriter(OutputStream out)

  - ### Method Detail

    - #### getOutputStream

          public OutputStream getOutputStream()

      Description copied from interface: `ByteSink`
      get the `OutputStream` used by this `ByteSink`.
      Specified by:
        `getOutputStream` in interface `ByteSink`
      Returns:
        an `OutputStream`

    - #### getTupleQueryResultFormat

          public final TupleQueryResultFormat getTupleQueryResultFormat()

      Description copied from interface: `TupleQueryResultWriter`
      Gets the query result format that this writer uses.
      Specified by:
        `getTupleQueryResultFormat` in interface `TupleQueryResultWriter`

    - #### getQueryResultFormat

          public final TupleQueryResultFormat getQueryResultFormat()

      Description copied from interface: `QueryResultWriter`
      Gets the query result format that this writer uses.
      Specified by:
        `getQueryResultFormat` in interface `QueryResultWriter`

    - #### getSupportedSettings

          public Collection<RioSetting<?>> getSupportedSettings()

      Specified by:
        `getSupportedSettings` in interface `QueryResultWriter`
      Overrides:
        `getSupportedSettings` in class `AbstractQueryResultWriter`
      Returns:
        A collection of `RioSetting`s that are supported by this `QueryResultWriter`.

    - #### startDocument

          public void startDocument()
                             throws TupleQueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Indicates the start of the document.
      Specified by:
        `startDocument` in interface `QueryResultWriter`
      Throws:
        `TupleQueryResultHandlerException`

    - #### 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 SeRQL query like `select X, Y from {X} P {Y}` will have binding names `X` and `Y`.
      Specified by:
        `startQueryResult` in interface `QueryResultHandler`
      Overrides:
        `startQueryResult` in class `AbstractQueryResultWriter`
      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.

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

    - #### handleSolutionImpl

          protected void handleSolutionImpl(BindingSet bindingSet)
                                     throws TupleQueryResultHandlerException

      Description copied from class: `AbstractQueryResultWriter`
      Extending classes must implement this method instead of overriding `AbstractQueryResultWriter.handleSolution(BindingSet)` in order to benefit from automatic handling of RDF* encoding.
      Overrides:
        `handleSolutionImpl` in class `AbstractQueryResultWriter`
      Parameters:
        `bindingSet` - the solution to handle
      Throws:
        `TupleQueryResultHandlerException`

    - #### handleNamespace

          public void handleNamespace(String prefix,
                                      String uri)
                               throws QueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Handles a namespace prefix declaration. If this is called, it should be called before `QueryResultWriter.startDocument()` to ensure that it has a document wide effect.

      NOTE: If the format does not support namespaces, it must silently ignore calls to this method.

      Specified by:
        `handleNamespace` in interface `QueryResultWriter`
      Parameters:
        `prefix` - The prefix to use for the namespace
        `uri` - The full URI that is to be represented by the prefix.
      Throws:
        `QueryResultHandlerException`

    - #### error

          public void error(QueryErrorType errType,
                            String msg)
                     throws IOException

      Writes an error msg to the stream.
      Parameters:
        `errType` - The error type.
        `msg` - The error message.
      Throws:
        `IOException` - When the error could not be written to the stream.

    - #### handleStylesheet

          public void handleStylesheet(String stylesheetUrl)
                                throws QueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Handles a stylesheet URL. If this is called, it must be called after `QueryResultWriter.startDocument()` and before `QueryResultWriter.startHeader()`.

      NOTE: If the format does not support stylesheets, it must silently ignore calls to this method.

      Specified by:
        `handleStylesheet` in interface `QueryResultWriter`
      Parameters:
        `stylesheetUrl` - The URL of the stylesheet to be used to style the results.
      Throws:
        `QueryResultHandlerException` - If there was an error handling the stylesheet. This error is not thrown in cases where stylesheets are not supported.

    - #### startHeader

          public void startHeader()
                           throws QueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Indicates the start of the header.
      Specified by:
        `startHeader` in interface `QueryResultWriter`
      Throws:
        `QueryResultHandlerException` - If there was an error writing the start of the header.
      See Also:
        SPARQL Query Results XML Format documentation for head element.

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

    - #### endHeader

          public void endHeader()
                         throws QueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Indicates the end of the header. This must be called after `QueryResultWriter.startHeader()` and before any calls to `QueryResultHandler.handleSolution(org.eclipse.rdf4j.query.BindingSet)`.
      Specified by:
        `endHeader` in interface `QueryResultWriter`
      Throws:
        `QueryResultHandlerException` - If there was an error writing the end of the header.

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

Copyright © 2015-2021 Eclipse Foundation. All Rights Reserved.