org.eclipse.rdf4j.sail.helpers

## Class SailConnectionWrapper

- java.lang.Object
- - org.eclipse.rdf4j.sail.helpers.SailConnectionWrapper

- All Implemented Interfaces:
    AutoCloseable, FederatedServiceResolverClient, SailConnection
  Direct Known Subclasses:
    NotifyingSailConnectionWrapper

      public class SailConnectionWrapper
      extends Object
      implements SailConnection, FederatedServiceResolverClient

  An implementation of the SailConnection interface that wraps another SailConnection object and forwards any method calls to the wrapped connection.
  Author:
    Jeen Broekstra

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SailConnectionWrapper(SailConnection wrappedCon)` Creates a new TransactionWrapper object that wraps the supplied connection.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addStatement(Resource subj, IRI pred, Value obj, Resource... contexts)` Adds a statement to the store.
    `void` | `addStatement(UpdateContext modify, Resource subj, IRI pred, Value obj, Resource... contexts)` Adds a statement to the store.
    `void` | `begin()` Begins a transaction requiring `SailConnection.commit()` or `SailConnection.rollback()` to be called to close the transaction.
    `void` | `begin(IsolationLevel level)` Begins a transaction with the specified `IsolationLevel` level, requiring `SailConnection.commit()` or `SailConnection.rollback()` to be called to close the transaction.
    `void` | `clear(Resource... contexts)` Removes all statements from the specified/all contexts.
    `void` | `clearNamespaces()` Removes all namespace declarations from the repository.
    `void` | `close()` Closes the connection.
    `void` | `commit()` Commits any updates that have been performed since the last time `SailConnection.commit()` or `SailConnection.rollback()` was called.
    `void` | `endUpdate(UpdateContext modify)` Indicates that the given `op` will not be used in any call again.
    `CloseableIteration<? extends BindingSet,QueryEvaluationException>` | `evaluate(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred)` Evaluates the supplied TupleExpr on the data contained in this Sail object, using the (optional) dataset and supplied bindings as input parameters.
    `void` | `flush()` Flushes any pending updates and notify changes to listeners as appropriate.
    `CloseableIteration<? extends Resource,SailException>` | `getContextIDs()` Returns the set of all unique context identifiers that are used to store statements.
    `String` | `getNamespace(String prefix)` Gets the namespace that is associated with the specified prefix, if any.
    `CloseableIteration<? extends Namespace,SailException>` | `getNamespaces()` Gets the namespaces relevant to the data contained in this Sail object.
    `CloseableIteration<? extends Statement,SailException>` | `getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts)` Gets all statements from the specified contexts that have a specific subject, predicate and/or object.
    `SailConnection` | `getWrappedConnection()` Gets the connection that is wrapped by this object.
    `boolean` | `isActive()` Indicates if a transaction is currently active on the connection.
    `boolean` | `isOpen()` Checks whether this SailConnection is open.
    `boolean` | `pendingRemovals()` Indicates if the Sail has any statement removal operations pending (not yet `flushed`) for the current transaction.
    `void` | `prepare()` Checks for an error state in the active transaction that would force the transaction to be rolled back.
    `void` | `removeNamespace(String prefix)` Removes a namespace declaration by removing the association between a prefix and a namespace name.
    `void` | `removeStatement(UpdateContext modify, Resource subj, IRI pred, Value obj, Resource... contexts)` Removes all statements matching the specified subject, predicate and object from the repository.
    `void` | `removeStatements(Resource subj, IRI pred, Value obj, Resource... contexts)` Removes all statements matching the specified subject, predicate and object from the repository.
    `void` | `rollback()` Rolls back the transaction, discarding any uncommitted changes that have been made in this SailConnection.
    `void` | `setFederatedServiceResolver(FederatedServiceResolver resolver)` Sets the `FederatedServiceResolver` to use for this client.
    `void` | `setNamespace(String prefix, String name)` Sets the prefix for a namespace.
    `long` | `size(Resource... contexts)` Returns the number of (explicit) statements in the store, or in specific contexts.
    `long` | `size(Resource context)`
    `void` | `startUpdate(UpdateContext modify)` Signals the start of an update operation.

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

      `addStatement, addStatement, getStatements, hasStatement, removeStatement, removeStatements`

- - ### Constructor Detail

    - #### SailConnectionWrapper

          public SailConnectionWrapper(SailConnection wrappedCon)

      Creates a new TransactionWrapper object that wraps the supplied connection.

  - ### Method Detail

    - #### getWrappedConnection

          public SailConnection getWrappedConnection()

      Gets the connection that is wrapped by this object.
      Returns:
        The SailConnection object that was supplied to the constructor of this class.

    - #### setFederatedServiceResolver

          public void setFederatedServiceResolver(FederatedServiceResolver resolver)

      Description copied from interface: `FederatedServiceResolverClient`
      Sets the `FederatedServiceResolver` to use for this client.
      Specified by:
        `setFederatedServiceResolver` in interface `FederatedServiceResolverClient`
      Parameters:
        `resolver` - The resolver to use.

    - #### isOpen

          public boolean isOpen()
                         throws SailException

      Description copied from interface: `SailConnection`
      Checks whether this SailConnection is open. A SailConnection is open from the moment it is created until it is closed.
      Specified by:
        `isOpen` in interface `SailConnection`
      Throws:
        `SailException`
      See Also:
        `SailConnection.close()`

    - #### close

          public void close()
                     throws SailException

      Description copied from interface: `SailConnection`
      Closes the connection. Any updates that haven't been committed yet will be rolled back. The connection can no longer be used once it is closed.
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `SailConnection`
      Throws:
        `SailException`

    - #### evaluate

          public CloseableIteration<? extends BindingSet,QueryEvaluationException> evaluate(TupleExpr tupleExpr,
                                                                                            Dataset dataset,
                                                                                            BindingSet bindings,
                                                                                            boolean includeInferred)
                                                                                     throws SailException

      Description copied from interface: `SailConnection`
      Evaluates the supplied TupleExpr on the data contained in this Sail object, using the (optional) dataset and supplied bindings as input parameters.
      Specified by:
        `evaluate` in interface `SailConnection`
      Parameters:
        `tupleExpr` - The tuple expression to evaluate.
        `dataset` - The dataset to use for evaluating the query, `null` to use the Sail's default dataset.
        `bindings` - A set of input parameters for the query evaluation. The keys reference variable names that should be bound to the value they map to.
        `includeInferred` - Indicates whether inferred triples are to be considered in the query result. If false, no inferred statements are returned; if true, inferred statements are returned if available
      Returns:
        The TupleQueryResult.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### getContextIDs

          public CloseableIteration<? extends Resource,SailException> getContextIDs()
                                                                             throws SailException

      Description copied from interface: `SailConnection`
      Returns the set of all unique context identifiers that are used to store statements.
      Specified by:
        `getContextIDs` in interface `SailConnection`
      Returns:
        An iterator over the context identifiers, should not contain any duplicates.
      Throws:
        `SailException`

    - #### getStatements

          public CloseableIteration<? extends Statement,SailException> getStatements(Resource subj,
                                                                                     IRI pred,
                                                                                     Value obj,
                                                                                     boolean includeInferred,
                                                                                     Resource... contexts)
                                                                              throws SailException

      Description copied from interface: `SailConnection`
      Gets all statements from the specified contexts that have a specific subject, predicate and/or object. All three parameters may be null to indicate wildcards. The `includeInferred` parameter can be used to control which statements are fetched: all statements or only the statements that have been added explicitly.
      Specified by:
        `getStatements` in interface `SailConnection`
      Parameters:
        `subj` - A Resource specifying the subject, or `null` for a wildcard.
        `pred` - A URI specifying the predicate, or `null` for a wildcard.
        `obj` - A Value specifying the object, or `null` for a wildcard.
        `includeInferred` - if false, no inferred statements are returned; if true, inferred statements are returned if available
        `contexts` - The context(s) to get the data from. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A `null` value can be used to match context-less statements.
      Returns:
        The statements matching the specified pattern.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### size

          public long size(Resource... contexts)
                    throws SailException

      Description copied from interface: `SailConnection`
      Returns the number of (explicit) statements in the store, or in specific contexts.
      Specified by:
        `size` in interface `SailConnection`
      Parameters:
        `contexts` - The context(s) to determine the size of. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A `null` value can be used to match context-less statements.
      Returns:
        The number of explicit statements in this store, or in the specified context(s).
      Throws:
        `SailException`

    - #### size

          public long size(Resource context)
                    throws SailException

      Throws:
        `SailException`

    - #### commit

          public void commit()
                      throws SailException

      Description copied from interface: `SailConnection`
      Commits any updates that have been performed since the last time `SailConnection.commit()` or `SailConnection.rollback()` was called.
      Specified by:
        `commit` in interface `SailConnection`
      Throws:
        `UnknownSailTransactionStateException` - If the transaction state can not be determined (this can happen for instance when communication between client and server fails or times-out). It does not indicate a problem with the integrity of the store.
        `SailException` - If the SailConnection could not be committed.

    - #### rollback

          public void rollback()
                        throws SailException

      Description copied from interface: `SailConnection`
      Rolls back the transaction, discarding any uncommitted changes that have been made in this SailConnection.
      Specified by:
        `rollback` in interface `SailConnection`
      Throws:
        `UnknownSailTransactionStateException` - If the transaction state can not be determined (this can happen for instance when communication between client and server fails or times-out). It does not indicate a problem with the integrity of the store.
        `SailException` - If the SailConnection could not be rolled back.

    - #### addStatement

          public void addStatement(Resource subj,
                                   IRI pred,
                                   Value obj,
                                   Resource... contexts)
                            throws SailException

      Description copied from interface: `SailConnection`
      Adds a statement to the store.
      Specified by:
        `addStatement` in interface `SailConnection`
      Parameters:
        `subj` - The subject of the statement to add.
        `pred` - The predicate of the statement to add.
        `obj` - The object of the statement to add.
        `contexts` - The context(s) to add the statement to. Note that this parameter is a vararg and as such is optional. If no contexts are specified, a context-less statement will be added.
      Throws:
        `SailException` - If the statement could not be added, for example because no transaction is active.

    - #### removeStatements

          public void removeStatements(Resource subj,
                                       IRI pred,
                                       Value obj,
                                       Resource... contexts)
                                throws SailException

      Description copied from interface: `SailConnection`
      Removes all statements matching the specified subject, predicate and object from the repository. All three parameters may be null to indicate wildcards.
      Specified by:
        `removeStatements` in interface `SailConnection`
      Parameters:
        `subj` - The subject of the statement that should be removed, or `null` to indicate a wildcard.
        `pred` - The predicate of the statement that should be removed, or `null` to indicate a wildcard.
        `obj` - The object of the statement that should be removed , or `null` to indicate a wildcard. *
        `contexts` - The context(s) from which to remove the statement. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A `null` value can be used to match context-less statements.
      Throws:
        `SailException` - If the statement could not be removed, for example because no transaction is active.

    - #### startUpdate

          public void startUpdate(UpdateContext modify)
                           throws SailException

      Description copied from interface: `SailConnection`
      Signals the start of an update operation. The given `op` maybe passed to subsequent `SailConnection.addStatement(UpdateContext, Resource, IRI, Value, Resource...)` or `SailConnection.removeStatement(UpdateContext, Resource, IRI, Value, Resource...)` calls before `SailConnection.endUpdate(UpdateContext)` is called.
      Specified by:
        `startUpdate` in interface `SailConnection`
      Throws:
        `SailException`

    - #### addStatement

          public void addStatement(UpdateContext modify,
                                   Resource subj,
                                   IRI pred,
                                   Value obj,
                                   Resource... contexts)
                            throws SailException

      Description copied from interface: `SailConnection`
      Adds a statement to the store. Called when adding statements through a `UpdateExpr` operation.
      Specified by:
        `addStatement` in interface `SailConnection`
      Parameters:
        `modify` - operation properties of the `UpdateExpr` operation producing these statements.
        `subj` - The subject of the statement to add.
        `pred` - The predicate of the statement to add.
        `obj` - The object of the statement to add.
        `contexts` - The context(s) to add the statement to. Note that this parameter is a vararg and as such is optional. If no contexts are specified, a context-less statement will be added.
      Throws:
        `SailException` - If the statement could not be added, for example because no transaction is active.

    - #### removeStatement

          public void removeStatement(UpdateContext modify,
                                      Resource subj,
                                      IRI pred,
                                      Value obj,
                                      Resource... contexts)
                               throws SailException

      Description copied from interface: `SailConnection`
      Removes all statements matching the specified subject, predicate and object from the repository. All three parameters may be null to indicate wildcards. Called when removing statements through a `UpdateExpr` operation.
      Specified by:
        `removeStatement` in interface `SailConnection`
      Parameters:
        `modify` - operation properties of the `UpdateExpr` operation removing these statements.
        `subj` - The subject of the statement that should be removed.
        `pred` - The predicate of the statement that should be removed.
        `obj` - The object of the statement that should be removed.
        `contexts` - The context(s) from which to remove the statement. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A `null` value can be used to match context-less statements.
      Throws:
        `SailException` - If the statement could not be removed, for example because no transaction is active.

    - #### endUpdate

          public void endUpdate(UpdateContext modify)
                         throws SailException

      Description copied from interface: `SailConnection`
      Indicates that the given `op` will not be used in any call again. Implementations should use this to flush of any temporary operation states that may have occurred.
      Specified by:
        `endUpdate` in interface `SailConnection`
      Throws:
        `SailException`

    - #### clear

          public void clear(Resource... contexts)
                     throws SailException

      Description copied from interface: `SailConnection`
      Removes all statements from the specified/all contexts. If no contexts are specified the method operates on the entire repository.
      Specified by:
        `clear` in interface `SailConnection`
      Parameters:
        `contexts` - The context(s) from which to remove the statements. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A `null` value can be used to match context-less statements.
      Throws:
        `SailException` - If the statements could not be removed.

    - #### getNamespaces

          public CloseableIteration<? extends Namespace,SailException> getNamespaces()
                                                                              throws SailException

      Description copied from interface: `SailConnection`
      Gets the namespaces relevant to the data contained in this Sail object.
      Specified by:
        `getNamespaces` in interface `SailConnection`
      Returns:
        An iterator over the relevant namespaces, should not contain any duplicates.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### getNamespace

          public String getNamespace(String prefix)
                              throws SailException

      Description copied from interface: `SailConnection`
      Gets the namespace that is associated with the specified prefix, if any.
      Specified by:
        `getNamespace` in interface `SailConnection`
      Parameters:
        `prefix` - A namespace prefix, or an empty string in case of the default namespace.
      Returns:
        The namespace name that is associated with the specified prefix, or `null` if there is no such namespace.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### setNamespace

          public void setNamespace(String prefix,
                                   String name)
                            throws SailException

      Description copied from interface: `SailConnection`
      Sets the prefix for a namespace.
      Specified by:
        `setNamespace` in interface `SailConnection`
      Parameters:
        `prefix` - The new prefix, or an empty string in case of the default namespace.
        `name` - The namespace name that the prefix maps to.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### removeNamespace

          public void removeNamespace(String prefix)
                               throws SailException

      Description copied from interface: `SailConnection`
      Removes a namespace declaration by removing the association between a prefix and a namespace name.
      Specified by:
        `removeNamespace` in interface `SailConnection`
      Parameters:
        `prefix` - The namespace prefix, or an empty string in case of the default namespace.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### clearNamespaces

          public void clearNamespaces()
                               throws SailException

      Description copied from interface: `SailConnection`
      Removes all namespace declarations from the repository.
      Specified by:
        `clearNamespaces` in interface `SailConnection`
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### pendingRemovals

          public boolean pendingRemovals()

      Description copied from interface: `SailConnection`
      Indicates if the Sail has any statement removal operations pending (not yet `flushed`) for the current transaction.
      Specified by:
        `pendingRemovals` in interface `SailConnection`
      Returns:
        true if any statement removal operations have not yet been flushed, false otherwise.
      See Also:
        `SailConnection.flush()`

    - #### begin

          public void begin()
                     throws SailException

      Description copied from interface: `SailConnection`
      Begins a transaction requiring `SailConnection.commit()` or `SailConnection.rollback()` to be called to close the transaction. The transaction will use the default `IsolationLevel` level for the SAIL, as returned by `Sail.getDefaultIsolationLevel()`.
      Specified by:
        `begin` in interface `SailConnection`
      Throws:
        `SailException` - If the connection could not start a transaction or if a transaction is already active on this connection.

    - #### begin

          public void begin(IsolationLevel level)
                     throws SailException

      Description copied from interface: `SailConnection`
      Begins a transaction with the specified `IsolationLevel` level, requiring `SailConnection.commit()` or `SailConnection.rollback()` to be called to close the transaction.
      Specified by:
        `begin` in interface `SailConnection`
      Parameters:
        `level` - the transaction isolation level on which this transaction operates.
      Throws:
        `UnknownSailTransactionStateException` - If the IsolationLevel is not supported by this implementation
        `SailException` - If the connection could not start a transaction, if the supplied transaction isolation level is not supported, or if a transaction is already active on this connection.

    - #### flush

          public void flush()
                     throws SailException

      Description copied from interface: `SailConnection`
      Flushes any pending updates and notify changes to listeners as appropriate. This is an optional call; calling or not calling this method should have no effect on the outcome of other calls. This method exists to give the caller more control over the efficiency when calling `SailConnection.prepare()`. This method may be called multiple times within the same transaction.
      Specified by:
        `flush` in interface `SailConnection`
      Throws:
        `SailException` - If the updates could not be processed, for example because no transaction is active.

    - #### prepare

          public void prepare()
                       throws SailException

      Description copied from interface: `SailConnection`
      Checks for an error state in the active transaction that would force the transaction to be rolled back. This is an optional call; calling or not calling this method should have no effect on the outcome of `SailConnection.commit()` or `SailConnection.rollback()`. A call to this method must be followed by (in the same thread) with a call to `SailConnection.prepare()` , `SailConnection.commit()`, `SailConnection.rollback()`, or `SailConnection.close()` . This method may be called multiple times within the same transaction by the same thread. If this method returns normally, the caller can reasonably expect that a subsequent call to `SailConnection.commit()` will also return normally. If this method returns with an exception the caller should treat the exception as if it came from a call to `SailConnection.commit()`.
      Specified by:
        `prepare` in interface `SailConnection`
      Throws:
        `UnknownSailTransactionStateException` - If the transaction state can not be determined (this can happen for instance when communication between client and server fails or times-out). It does not indicate a problem with the integrity of the store.
        `SailException` - If there is an active transaction and it cannot be committed.

    - #### isActive

          public boolean isActive()
                           throws UnknownSailTransactionStateException

      Description copied from interface: `SailConnection`
      Indicates if a transaction is currently active on the connection. A transaction is active if `SailConnection.begin()` has been called, and becomes inactive after `SailConnection.commit()` or `SailConnection.rollback()` has been called.
      Specified by:
        `isActive` in interface `SailConnection`
      Returns:
        `true` iff a transaction is active, `false` iff no transaction is active.
      Throws:
        `UnknownSailTransactionStateException` - if the transaction state can not be determined (this can happen for instance when communication between client and server fails or times out).

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