Package org.eclipse.rdf4j.federated.repository

## Class FedXRepositoryConnection

- java.lang.Object
- - org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection
  - - org.eclipse.rdf4j.repository.sail.SailRepositoryConnection
    - - org.eclipse.rdf4j.federated.repository.FedXRepositoryConnection

- All Implemented Interfaces:
    `AutoCloseable`, `HttpClientDependent`, `SessionManagerDependent`, `FederatedServiceResolverClient`, `RepositoryConnection`, `RepositoryResolverClient`

      public class FedXRepositoryConnection
      extends SailRepositoryConnection

  A special `SailRepositoryConnection` which adds the original query string as binding to the returned query. The binding name is defined by `BINDING_ORIGINAL_QUERY` and is added to all query instances returned by the available prepare methods.
  Author:
    Andreas Schwarte

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `BINDING_ORIGINAL_BASE_URI` |
    `static String` | `BINDING_ORIGINAL_MAX_EXECUTION_TIME` |
    `static String` | `BINDING_ORIGINAL_QUERY` | We add a binding to each parsed query mapping the original query in order to send the original query to the endpoint if there is only a single federation member is relevant for this query.
    `static String` | `BINDING_ORIGINAL_QUERY_TYPE` |
    `static Set<String>` | `FEDX_BINDINGS` | The number of bindings in the external binding set that are added by FedX.

    - ### Fields inherited from class org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection

      `logger`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `FedXRepositoryConnection​(FedXRepository repository, SailConnection sailConnection)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `SailBooleanQuery` | `prepareBooleanQuery​(QueryLanguage ql, String queryString, String baseURI)` | Prepares queries that return true or false.
    `FedXGraphQuery` | `prepareGraphQuery​(QueryLanguage ql, String queryString, String baseURI)` | Prepares queries that produce RDF graphs.
    `SailQuery` | `prepareQuery​(QueryLanguage ql, String queryString, String baseURI)` | Prepares a query for evaluation on this repository (optional operation).
    `FedXTupleQuery` | `prepareTupleQuery​(QueryLanguage ql, String queryString, String baseURI)` | Prepares a query that produces sets of value tuples.
    `Update` | `prepareUpdate​(QueryLanguage ql, String updateString, String baseURI)` | Prepares an Update operation.

    - ### Methods inherited from class org.eclipse.rdf4j.repository.sail.SailRepositoryConnection

      `addWithoutCommit, begin, begin, begin, clear, clearNamespaces, close, commit, createRepositoryResult, exportStatements, getContextIDs, getHttpClient, getHttpClientSessionManager, getNamespace, getNamespaces, getSailConnection, getStatements, hasStatement, isActive, isEmpty, isOpen, prepare, removeNamespace, removeWithoutCommit, rollback, setFederatedServiceResolver, setHttpClient, setHttpClientSessionManager, setNamespace, setRepositoryResolver, size, toString`

    - ### Methods inherited from class org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection

      `add, add, add, add, add, add, add, add, addWithoutCommit, conditionalCommit, conditionalRollback, export, getIsolationLevel, getParserConfig, getRepository, getValueFactory, hasStatement, isAutoCommit, prepareBooleanQuery, prepareGraphQuery, prepareQuery, prepareTupleQuery, prepareUpdate, remove, remove, remove, remove, removeWithoutCommit, setAutoCommit, setIsolationLevel, setParserConfig, startLocalTransaction`

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

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

    - ### Methods inherited from interface org.eclipse.rdf4j.repository.RepositoryConnection

      `add, add, add, add, add, add, add, getStatements, prepareBooleanQuery, prepareGraphQuery, prepareQuery, prepareTupleQuery, prepareUpdate, remove`

- - ### Field Detail

    - #### BINDING_ORIGINAL_QUERY

          public static final String BINDING_ORIGINAL_QUERY

      We add a binding to each parsed query mapping the original query in order to send the original query to the endpoint if there is only a single federation member is relevant for this query.
      See Also:
        Constant Field Values

    - #### BINDING_ORIGINAL_BASE_URI

          public static final String BINDING_ORIGINAL_BASE_URI

      See Also:
        Constant Field Values

    - #### BINDING_ORIGINAL_QUERY_TYPE

          public static final String BINDING_ORIGINAL_QUERY_TYPE

      See Also:
        Constant Field Values

    - #### BINDING_ORIGINAL_MAX_EXECUTION_TIME

          public static final String BINDING_ORIGINAL_MAX_EXECUTION_TIME

      See Also:
        Constant Field Values

    - #### FEDX_BINDINGS

          public static final Set<String> FEDX_BINDINGS

      The number of bindings in the external binding set that are added by FedX.
      See Also:
        `BINDING_ORIGINAL_QUERY`, `BINDING_ORIGINAL_QUERY_TYPE`, `BINDING_ORIGINAL_MAX_EXECUTION_TIME`

  - ### Constructor Detail

    - #### FedXRepositoryConnection

          protected FedXRepositoryConnection​(FedXRepository repository,
                                             SailConnection sailConnection)

  - ### Method Detail

    - #### prepareQuery

          public SailQuery prepareQuery​(QueryLanguage ql,
                                        String queryString,
                                        String baseURI)
                                 throws MalformedQueryException

      Description copied from interface: `RepositoryConnection`
      Prepares a query for evaluation on this repository (optional operation).

      If you already know the type of query, using the more specific `RepositoryConnection.prepareTupleQuery(java.lang.String)`, `RepositoryConnection.prepareGraphQuery(java.lang.String)` or `RepositoryConnection.prepareBooleanQuery(java.lang.String)` is likely to be more efficient.

      Specified by:
        `prepareQuery` in interface `RepositoryConnection`
      Overrides:
        `prepareQuery` in class `SailRepositoryConnection`
      Parameters:
        `ql` - The `query language` in which the query is formulated.
        `queryString` - The query string.
        `baseURI` - The base URI to resolve any relative URIs that are in the query against, can be null if the query does not contain any relative URIs.
      Returns:
        A query ready to be evaluated on this repository.
      Throws:
        `MalformedQueryException` - If the supplied query is malformed.

    - #### prepareTupleQuery

          public FedXTupleQuery prepareTupleQuery​(QueryLanguage ql,
                                                  String queryString,
                                                  String baseURI)
                                           throws MalformedQueryException

      Description copied from interface: `RepositoryConnection`
      Prepares a query that produces sets of value tuples.
      Specified by:
        `prepareTupleQuery` in interface `RepositoryConnection`
      Overrides:
        `prepareTupleQuery` in class `SailRepositoryConnection`
      Parameters:
        `ql` - The `query language` in which the query is formulated.
        `queryString` - The query string.
        `baseURI` - The base URI to resolve any relative URIs that are in the query against, can be null if the query does not contain any relative URIs.
      Returns:
        a `TupleQuery` ready to be evaluated on this `RepositoryConnection`.
      Throws:
        `MalformedQueryException` - If the supplied query is malformed.

    - #### prepareGraphQuery

          public FedXGraphQuery prepareGraphQuery​(QueryLanguage ql,
                                                  String queryString,
                                                  String baseURI)
                                           throws MalformedQueryException

      Description copied from interface: `RepositoryConnection`
      Prepares queries that produce RDF graphs.
      Specified by:
        `prepareGraphQuery` in interface `RepositoryConnection`
      Overrides:
        `prepareGraphQuery` in class `SailRepositoryConnection`
      Parameters:
        `ql` - The `query language` in which the query is formulated.
        `queryString` - The query string.
        `baseURI` - The base URI to resolve any relative URIs that are in the query against, can be null if the query does not contain any relative URIs.
      Returns:
        a `GraphQuery` ready to be evaluated on this `RepositoryConnection`.
      Throws:
        `MalformedQueryException` - If the supplied query is malformed.

    - #### prepareBooleanQuery

          public SailBooleanQuery prepareBooleanQuery​(QueryLanguage ql,
                                                      String queryString,
                                                      String baseURI)
                                               throws MalformedQueryException

      Description copied from interface: `RepositoryConnection`
      Prepares queries that return true or false.
      Specified by:
        `prepareBooleanQuery` in interface `RepositoryConnection`
      Overrides:
        `prepareBooleanQuery` in class `SailRepositoryConnection`
      Parameters:
        `ql` - The `query language` in which the query is formulated.
        `queryString` - The query string.
        `baseURI` - The base URI to resolve any relative URIs that are in the query against, can be null if the query does not contain any relative URIs.
      Returns:
        a `BooleanQuery` ready to be evaluated on this `RepositoryConnection`.
      Throws:
        `MalformedQueryException` - If the supplied query is malformed.

    - #### prepareUpdate

          public Update prepareUpdate​(QueryLanguage ql,
                                      String updateString,
                                      String baseURI)
                               throws RepositoryException,
                                      MalformedQueryException

      Description copied from interface: `RepositoryConnection`
      Prepares an Update operation.
      Specified by:
        `prepareUpdate` in interface `RepositoryConnection`
      Overrides:
        `prepareUpdate` in class `SailRepositoryConnection`
      Parameters:
        `ql` - The `query language` in which the update operation is formulated.
        `updateString` - The update operation string.
        `baseURI` - The base URI to resolve any relative URIs that are in the update against, can be null if the update does not contain any relative URIs.
      Returns:
        a `Update` ready to be executed on this `RepositoryConnection`.
      Throws:
        `MalformedQueryException` - If the supplied update operation string is malformed.
        `RepositoryException`