Package org.eclipse.rdf4j.repository.event.base

## Class NotifyingRepositoryConnectionWrapper

- java.lang.Object
- - org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection
  - - org.eclipse.rdf4j.repository.base.RepositoryConnectionWrapper
    - - org.eclipse.rdf4j.repository.event.base.NotifyingRepositoryConnectionWrapper

- All Implemented Interfaces:
    `AutoCloseable`, `DelegatingRepositoryConnection`, `NotifyingRepositoryConnection`, `RepositoryConnection`

      public class NotifyingRepositoryConnectionWrapper
      extends RepositoryConnectionWrapper
      implements NotifyingRepositoryConnection

  This broadcaster is used by the RepositoryBroadcaster to wrap the delegate repository connection. Listeners are notified of changes after they have occurred.
  Author:
    James Leigh, Herko ter Horst

- - ### Field Summary

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

      `logger`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `NotifyingRepositoryConnectionWrapper​(Repository repository, RepositoryConnection connection)` |
    `NotifyingRepositoryConnectionWrapper​(Repository repository, RepositoryConnection connection, boolean reportDeltas)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addRepositoryConnectionListener​(RepositoryConnectionListener listener)` | Registers a RepositoryConnectionListener that will receive notifications of operations that are performed on this connection.
    `void` | `addWithoutCommit​(Resource subject, IRI predicate, Value object, Resource... contexts)` |
    `void` | `begin()` | Begins a new transaction, requiring `RepositoryConnection.commit()` or `RepositoryConnection.rollback()` to be called to end the transaction.
    `void` | `clear​(Resource... contexts)` | Removes all statements from a specific contexts in the repository.
    `void` | `clearNamespaces()` | Removes all namespace declarations from the repository.
    `void` | `close()` | Closes the connection, freeing resources.
    `void` | `commit()` | Commits the active transaction.
    `protected boolean` | `isDelegatingAdd()` | If false then the following add methods will call `RepositoryConnectionWrapper.addWithoutCommit(Resource, IRI, Value, Resource[])`.
    `protected boolean` | `isDelegatingRemove()` | If false then the following remove methods will call `RepositoryConnectionWrapper.removeWithoutCommit(Resource, IRI, Value, Resource[])`.
    `Update` | `prepareUpdate​(QueryLanguage ql, String update, String baseURI)` | Prepares an Update operation.
    `void` | `removeNamespace​(String prefix)` | Removes a namespace declaration by removing the association between a prefix and a namespace name.
    `void` | `removeRepositoryConnectionListener​(RepositoryConnectionListener listener)` | Removes a registered RepositoryConnectionListener from this connection.
    `void` | `removeWithoutCommit​(Resource subj, IRI pred, Value obj, Resource... ctx)` |
    `boolean` | `reportDeltas()` |
    `void` | `rollback()` | Rolls back all updates in the active transaction.
    `void` | `setAutoCommit​(boolean autoCommit)` | Deprecated.
    `void` | `setNamespace​(String prefix, String name)` | Sets the prefix for a namespace.
    `void` | `setReportDeltas​(boolean reportDeltas)` |

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

      `add, add, add, add, add, add, add, add, begin, begin, exportStatements, exportStatements, getContextIDs, getDelegate, getIsolationLevel, getNamespace, getNamespaces, getStatements, hasStatement, hasStatement, isActive, isAutoCommit, isDelegatingRead, isEmpty, isOpen, prepare, prepareBooleanQuery, prepareGraphQuery, prepareQuery, prepareTupleQuery, remove, remove, remove, remove, setDelegate, setIsolationLevel, setParserConfig, size`

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

      `addWithoutCommit, conditionalCommit, conditionalRollback, export, getParserConfig, getRepository, getValueFactory, prepareBooleanQuery, prepareGraphQuery, prepareQuery, prepareTupleQuery, prepareUpdate, removeWithoutCommit, startLocalTransaction`

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

      `add, add, add, add, add, add, add, add, add, add, add, add, add, add, add, begin, begin, export, exportStatements, getContextIDs, getIsolationLevel, getNamespace, getNamespaces, getParserConfig, getRepository, getStatements, getStatements, getValueFactory, hasStatement, hasStatement, isActive, isAutoCommit, isEmpty, isOpen, prepare, prepareBooleanQuery, prepareBooleanQuery, prepareBooleanQuery, prepareGraphQuery, prepareGraphQuery, prepareGraphQuery, prepareQuery, prepareQuery, prepareQuery, prepareTupleQuery, prepareTupleQuery, prepareTupleQuery, prepareUpdate, prepareUpdate, remove, remove, remove, remove, remove, setIsolationLevel, setParserConfig, size`

- - ### Constructor Detail

    - #### NotifyingRepositoryConnectionWrapper

          public NotifyingRepositoryConnectionWrapper​(Repository repository,
                                                      RepositoryConnection connection)

    - #### NotifyingRepositoryConnectionWrapper

          public NotifyingRepositoryConnectionWrapper​(Repository repository,
                                                      RepositoryConnection connection,
                                                      boolean reportDeltas)

  - ### Method Detail

    - #### reportDeltas

          public boolean reportDeltas()

    - #### setReportDeltas

          public void setReportDeltas​(boolean reportDeltas)

    - #### addRepositoryConnectionListener

          public void addRepositoryConnectionListener​(RepositoryConnectionListener listener)

      Registers a RepositoryConnectionListener that will receive notifications of operations that are performed on this connection.
      Specified by:
        `addRepositoryConnectionListener` in interface `NotifyingRepositoryConnection`

    - #### removeRepositoryConnectionListener

          public void removeRepositoryConnectionListener​(RepositoryConnectionListener listener)

      Removes a registered RepositoryConnectionListener from this connection.
      Specified by:
        `removeRepositoryConnectionListener` in interface `NotifyingRepositoryConnection`

    - #### isDelegatingAdd

          protected boolean isDelegatingAdd()

      Description copied from class: `RepositoryConnectionWrapper`
      If false then the following add methods will call `RepositoryConnectionWrapper.addWithoutCommit(Resource, IRI, Value, Resource[])`.
      Overrides:
        `isDelegatingAdd` in class `RepositoryConnectionWrapper`
      Returns:
        `true` to delegate add methods, `false` to call `RepositoryConnectionWrapper.addWithoutCommit(Resource, IRI, Value, Resource[])`
      See Also:
        `RepositoryConnectionWrapper.add(Iterable, Resource...)`, `RepositoryConnectionWrapper.add(Iteration, Resource...)`, `RepositoryConnectionWrapper.add(Statement, Resource...)`, `RepositoryConnectionWrapper.add(File, String, RDFFormat, Resource...)`, `RepositoryConnectionWrapper.add(InputStream, String, RDFFormat, Resource...)`, `RepositoryConnectionWrapper.add(Reader, String, RDFFormat, Resource...)`, `RepositoryConnectionWrapper.add(Resource, IRI, Value, Resource...)`, `RepositoryConnectionWrapper.add(URL, String, RDFFormat, Resource...)`

    - #### isDelegatingRemove

          protected boolean isDelegatingRemove()

      Description copied from class: `RepositoryConnectionWrapper`
      If false then the following remove methods will call `RepositoryConnectionWrapper.removeWithoutCommit(Resource, IRI, Value, Resource[])`.
      Overrides:
        `isDelegatingRemove` in class `RepositoryConnectionWrapper`
      Returns:
        `true` to delegate remove methods, `false` to call `RepositoryConnectionWrapper.removeWithoutCommit(Resource, IRI, Value, Resource...)`
      See Also:
        `RepositoryConnectionWrapper.clear(Resource...)`, `RepositoryConnectionWrapper.remove(Iterable, Resource...)`, `RepositoryConnectionWrapper.remove(Iteration, Resource...)`, `RepositoryConnectionWrapper.remove(Statement, Resource...)`, `RepositoryConnectionWrapper.remove(Resource, IRI, Value, Resource...)`

    - #### addWithoutCommit

          public void addWithoutCommit​(Resource subject,
                                       IRI predicate,
                                       Value object,
                                       Resource... contexts)
                                throws RepositoryException

      Overrides:
        `addWithoutCommit` in class `RepositoryConnectionWrapper`
      Throws:
        `RepositoryException`

    - #### clear

          public void clear​(Resource... contexts)
                     throws RepositoryException

      Description copied from interface: `RepositoryConnection`
      Removes all statements from a specific contexts in the repository.
      Specified by:
        `clear` in interface `RepositoryConnection`
      Overrides:
        `clear` in class `RepositoryConnectionWrapper`
      Parameters:
        `contexts` - The context(s) to remove the data from. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on the entire repository.
      Throws:
        `RepositoryException` - If the statements could not be removed from the repository, for example because the repository is not writable.

    - #### close

          public void close()
                     throws RepositoryException

      Description copied from interface: `RepositoryConnection`
      Closes the connection, freeing resources. If a `transaction` is `active` on the connection, all non-committed operations will be lost by actively calling `RepositoryConnection.rollback()` on any active transactions.

      Implementation note: All implementations must override this method if they have any resources that they need to free.

      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `RepositoryConnection`
      Overrides:
        `close` in class `RepositoryConnectionWrapper`
      Throws:
        `RepositoryException` - If the connection could not be closed.

    - #### commit

          public void commit()
                      throws RepositoryException

      Description copied from interface: `RepositoryConnection`
      Commits the active transaction. This operation ends the active transaction.
      Specified by:
        `commit` in interface `RepositoryConnection`
      Overrides:
        `commit` in class `RepositoryConnectionWrapper`
      Throws:
        `UnknownTransactionStateException` - if the transaction state can not be determined. This can happen for instance when communication with a repository fails or times out.
        `RepositoryException` - If the connection could not be committed, or if the connection does not have an active transaction.
      See Also:
        `RepositoryConnection.isActive()`, `RepositoryConnection.begin()`, `RepositoryConnection.rollback()`, `RepositoryConnection.prepare()`

    - #### removeWithoutCommit

          public void removeWithoutCommit​(Resource subj,
                                          IRI pred,
                                          Value obj,
                                          Resource... ctx)
                                   throws RepositoryException

      Overrides:
        `removeWithoutCommit` in class `RepositoryConnectionWrapper`
      Throws:
        `RepositoryException`

    - #### removeNamespace

          public void removeNamespace​(String prefix)
                               throws RepositoryException

      Description copied from interface: `RepositoryConnection`
      Removes a namespace declaration by removing the association between a prefix and a namespace name.
      Specified by:
        `removeNamespace` in interface `RepositoryConnection`
      Overrides:
        `removeNamespace` in class `RepositoryConnectionWrapper`
      Parameters:
        `prefix` - The namespace prefix, or an empty string in case of the default namespace.
      Throws:
        `RepositoryException` - If the namespace prefix could not be removed.

    - #### clearNamespaces

          public void clearNamespaces()
                               throws RepositoryException

      Description copied from interface: `RepositoryConnection`
      Removes all namespace declarations from the repository.
      Specified by:
        `clearNamespaces` in interface `RepositoryConnection`
      Overrides:
        `clearNamespaces` in class `RepositoryConnectionWrapper`
      Throws:
        `RepositoryException` - If the namespace declarations could not be removed.

    - #### begin

          public void begin()
                     throws RepositoryException

      Description copied from interface: `RepositoryConnection`
      Begins a new transaction, requiring `RepositoryConnection.commit()` or `RepositoryConnection.rollback()` to be called to end the transaction. The transaction will use the currently set `isolation level` for this connection.
      Specified by:
        `begin` in interface `RepositoryConnection`
      Overrides:
        `begin` in class `RepositoryConnectionWrapper`
      Throws:
        `RepositoryException` - If the connection could not start the transaction. One possible reason this may happen is if a transaction is already `active` on the current connection.
      See Also:
        `RepositoryConnection.begin(IsolationLevel)`, `RepositoryConnection.isActive()`, `RepositoryConnection.commit()`, `RepositoryConnection.rollback()`, `RepositoryConnection.setIsolationLevel(IsolationLevel)`

    - #### rollback

          public void rollback()
                        throws RepositoryException

      Description copied from interface: `RepositoryConnection`
      Rolls back all updates in the active transaction. This operation ends the active transaction.
      Specified by:
        `rollback` in interface `RepositoryConnection`
      Overrides:
        `rollback` in class `RepositoryConnectionWrapper`
      Throws:
        `UnknownTransactionStateException` - if the transaction state can not be determined. This can happen for instance when communication with a repository fails or times out.
        `RepositoryException` - If the transaction could not be rolled back, or if the connection does not have an active transaction.
      See Also:
        `RepositoryConnection.isActive()`, `RepositoryConnection.begin()`, `RepositoryConnection.commit()`

    - #### setAutoCommit

          @Deprecated
          public void setAutoCommit​(boolean autoCommit)
                             throws RepositoryException

      Deprecated.
      Description copied from interface: `RepositoryConnection`
      Enables or disables auto-commit mode for the connection. If a connection is in auto-commit mode, then all updates will be executed and committed as individual transactions. Otherwise, the updates are grouped into transactions that are terminated by a call to either `RepositoryConnection.commit()` or `RepositoryConnection.rollback()`. By default, new connections are in auto-commit mode.

      NOTE: If this connection is switched to auto-commit mode during a transaction, the transaction is committed.

      Specified by:
        `setAutoCommit` in interface `RepositoryConnection`
      Overrides:
        `setAutoCommit` in class `RepositoryConnectionWrapper`
      Throws:
        `RepositoryException` - In case the mode switch failed, for example because a currently active transaction failed to commit.
      See Also:
        `RepositoryConnection.commit()`

    - #### setNamespace

          public void setNamespace​(String prefix,
                                   String name)
                            throws RepositoryException

      Description copied from interface: `RepositoryConnection`
      Sets the prefix for a namespace.
      Specified by:
        `setNamespace` in interface `RepositoryConnection`
      Overrides:
        `setNamespace` in class `RepositoryConnectionWrapper`
      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:
        `RepositoryException` - If the namespace could not be set in the repository, for example because the repository is not writable.

    - #### prepareUpdate

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

      Description copied from interface: `RepositoryConnection`
      Prepares an Update operation.
      Specified by:
        `prepareUpdate` in interface `RepositoryConnection`
      Overrides:
        `prepareUpdate` in class `RepositoryConnectionWrapper`
      Parameters:
        `ql` - The `query language` in which the update operation is formulated.
        `update` - 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`