Package org.eclipse.rdf4j.sail.shacl

## Class ShaclSailConnection

- java.lang.Object
- - org.eclipse.rdf4j.sail.helpers.SailConnectionWrapper
  - - org.eclipse.rdf4j.sail.helpers.NotifyingSailConnectionWrapper
    - - org.eclipse.rdf4j.sail.shacl.ShaclSailConnection

- All Implemented Interfaces:
    `AutoCloseable`, `FederatedServiceResolverClient`, `NotifyingSailConnection`, `SailConnection`, `SailConnectionListener`

      public class ShaclSailConnection
      extends NotifyingSailConnectionWrapper
      implements SailConnectionListener

  Author:
    Heshan Jayasinghe, Håvard Ottestad

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `ShaclSailConnection.Settings` |

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `ShaclSail` | `sail` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addConnectionListener​(SailConnectionListener listener)` | Adds the given listener to the wrapped connection.
    `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` | `close()` | Closes the connection.
    `void` | `commit()` | Commits any updates that have been performed since the last time `SailConnection.commit()` or `SailConnection.rollback()` was called.
    `RdfsSubClassOfReasoner` | `getRdfsSubClassOfReasoner()` |
    `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.
    `boolean` | `hasStatement​(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts)` | Determines if the store contains any statements from the specified contexts that have a specific subject, predicate and/or object.
    `void` | `prepare()` | Checks for an error state in the active transaction that would force the transaction to be rolled back.
    `void` | `removeConnectionListener​(SailConnectionListener listener)` | Removes the given listener from the wrapped connection.
    `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.
    `ValidationReport` | `revalidate()` |
    `void` | `rollback()` | Rolls back the transaction, discarding any uncommitted changes that have been made in this SailConnection.
    `void` | `setTransactionSettings​(TransactionSetting... settings)` | Pass any transaction-specific settings to the SailConnection.
    `void` | `statementAdded​(Statement statement)` | Notifies the listener that a statement has been added in a transaction that it has registered itself with.
    `void` | `statementRemoved​(Statement statement)` | Notifies the listener that a statement has been removed in a transaction that it has registered itself with.

    - ### Methods inherited from class org.eclipse.rdf4j.sail.helpers.NotifyingSailConnectionWrapper

      `getWrappedConnection`

    - ### Methods inherited from class org.eclipse.rdf4j.sail.helpers.SailConnectionWrapper

      `clearNamespaces, endUpdate, evaluate, explain, flush, getContextIDs, getNamespace, getNamespaces, isActive, isOpen, pendingRemovals, prepareQuery, removeNamespace, setFederatedServiceResolver, setNamespace, size, size, startUpdate`

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

      `clearNamespaces, endUpdate, evaluate, explain, flush, getContextIDs, getNamespace, getNamespaces, isActive, isOpen, pendingRemovals, prepareQuery, removeNamespace, setNamespace, size, startUpdate`

- - ### Field Detail

    - #### sail

          public final ShaclSail sail

  - ### Method Detail

    - #### setTransactionSettings

          public void setTransactionSettings​(TransactionSetting... settings)

      Description copied from interface: `SailConnection`
      Pass any transaction-specific settings to the SailConnection. This method needs to be called before the transaction is `started` .

      Sail implementations can override this method to receive the transaction settings (to inspect and/or pass them along to any wrapped sail objects). Remember to call `super.setTransactionSettings(settings)` if you override this method.

      Specified by:
        `setTransactionSettings` in interface `SailConnection`
      Overrides:
        `setTransactionSettings` in class `SailConnectionWrapper`
      Parameters:
        `settings` - the transaction settings on which the next transaction operates. It may or may not contain the isolation level.

    - #### 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`
      Overrides:
        `begin` in class `SailConnectionWrapper`
      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`
      Overrides:
        `begin` in class `SailConnectionWrapper`
      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.

    - #### addConnectionListener

          public void addConnectionListener​(SailConnectionListener listener)

      Description copied from class: `NotifyingSailConnectionWrapper`
      Adds the given listener to the wrapped connection.
      Specified by:
        `addConnectionListener` in interface `NotifyingSailConnection`
      Overrides:
        `addConnectionListener` in class `NotifyingSailConnectionWrapper`
      Parameters:
        `listener` - A SailConnectionListener.

    - #### removeConnectionListener

          public void removeConnectionListener​(SailConnectionListener listener)

      Description copied from class: `NotifyingSailConnectionWrapper`
      Removes the given listener from the wrapped connection.
      Specified by:
        `removeConnectionListener` in interface `NotifyingSailConnection`
      Overrides:
        `removeConnectionListener` in class `NotifyingSailConnectionWrapper`
      Parameters:
        `listener` - A SailConnectionListener.

    - #### 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`
      Overrides:
        `commit` in class `SailConnectionWrapper`
      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.

    - #### 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`
      Overrides:
        `addStatement` in class `SailConnectionWrapper`
      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`
      Overrides:
        `removeStatement` in class `SailConnectionWrapper`
      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.

    - #### 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`
      Overrides:
        `addStatement` in class `SailConnectionWrapper`
      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`
      Overrides:
        `removeStatements` in class `SailConnectionWrapper`
      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.

    - #### 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`
      Overrides:
        `clear` in class `SailConnectionWrapper`
      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.

    - #### 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`
      Overrides:
        `rollback` in class `SailConnectionWrapper`
      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.

    - #### 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`
      Overrides:
        `close` in class `SailConnectionWrapper`
      Throws:
        `SailException`

    - #### 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`
      Overrides:
        `prepare` in class `SailConnectionWrapper`
      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.

    - #### statementAdded

          public void statementAdded​(Statement statement)

      Description copied from interface: `SailConnectionListener`
      Notifies the listener that a statement has been added in a transaction that it has registered itself with.
      Specified by:
        `statementAdded` in interface `SailConnectionListener`
      Parameters:
        `statement` - The statement that was added.

    - #### statementRemoved

          public void statementRemoved​(Statement statement)

      Description copied from interface: `SailConnectionListener`
      Notifies the listener that a statement has been removed in a transaction that it has registered itself with.
      Specified by:
        `statementRemoved` in interface `SailConnectionListener`
      Parameters:
        `statement` - The statement that was removed.

    - #### getRdfsSubClassOfReasoner

          public RdfsSubClassOfReasoner getRdfsSubClassOfReasoner()

    - #### 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`
      Overrides:
        `getStatements` in class `SailConnectionWrapper`
      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.

    - #### hasStatement

          public boolean hasStatement​(Resource subj,
                                      IRI pred,
                                      Value obj,
                                      boolean includeInferred,
                                      Resource... contexts)
                               throws SailException

      Description copied from interface: `SailConnection`
      Determines if the store contains any 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 checked: all statements or only the statements that have been added explicitly.
      Specified by:
        `hasStatement` in interface `SailConnection`
      Overrides:
        `hasStatement` in class `SailConnectionWrapper`
      Parameters:
        `subj` - A Resource specifying the subject, or null for a wildcard.
        `pred` - An IRI 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:
        `true` iff the store contains any statements matching the supplied criteria, `false` otherwise.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### revalidate

          public ValidationReport revalidate()