Class NotifyingRepositoryWrapper

All Implemented Interfaces:
DelegatingRepository, NotifyingRepository, Repository

public class NotifyingRepositoryWrapper extends RepositoryWrapper implements NotifyingRepository
This notifying decorator allows listeners to register with the repository or connection and be notified when events occur.
James Leigh, Herko ter Horst, Arjohn Kampman
See Also:
  • Constructor Details

    • NotifyingRepositoryWrapper

      public NotifyingRepositoryWrapper()
    • NotifyingRepositoryWrapper

      public NotifyingRepositoryWrapper(Repository delegate)
    • NotifyingRepositoryWrapper

      public NotifyingRepositoryWrapper(Repository delegate, boolean defaultReportDeltas)
  • Method Details

    • getDefaultReportDeltas

      public boolean getDefaultReportDeltas()
    • setDefaultReportDeltas

      public void setDefaultReportDeltas(boolean defaultReportDeltas)
    • addRepositoryListener

      public void addRepositoryListener(RepositoryListener listener)
      Registers a RepositoryListener that will receive notifications of operations that are performed on this repository.
      Specified by:
      addRepositoryListener in interface NotifyingRepository
    • removeRepositoryListener

      public void removeRepositoryListener(RepositoryListener listener)
      Removes a registered RepositoryListener from this repository.
      Specified by:
      removeRepositoryListener in interface NotifyingRepository
    • addRepositoryConnectionListener

      public void addRepositoryConnectionListener(RepositoryConnectionListener listener)
      Registers a RepositoryConnectionListener that will receive notifications of operations that are performed on anyinvalid input: '<' connections that are created by this repository.
      Specified by:
      addRepositoryConnectionListener in interface NotifyingRepository
    • removeRepositoryConnectionListener

      public void removeRepositoryConnectionListener(RepositoryConnectionListener listener)
      Removes a registered RepositoryConnectionListener from this repository.
      Specified by:
      removeRepositoryConnectionListener in interface NotifyingRepository
    • getConnection

      public NotifyingRepositoryConnection getConnection() throws RepositoryException
      Description copied from interface: Repository
      Opens a connection to this repository that can be used for querying and updating the contents of the repository. Created connections need to be closed to make sure that any resources they keep hold of are released. The best way to do this is to use a try-with-resources block, as follows:
       try (RepositoryConnection conn = repository.getConnection()) {
              // perform operations on the connection

      Note that RepositoryConnection is not guaranteed to be thread-safe! The recommended pattern for repository access in a multi-threaded application is to share the Repository object between threads, but have each thread create and use its own RepositoryConnections.

      Specified by:
      getConnection in interface NotifyingRepository
      Specified by:
      getConnection in interface Repository
      getConnection in class RepositoryWrapper
      A connection that allows operations on this repository.
      RepositoryException - If something went wrong during the creation of the Connection.
    • init

      public void init() throws RepositoryException
      Description copied from interface: Repository
      Initializes this repository. A repository needs to be initialized before it can be used, however explicitly calling this method is not necessary: the repository will automatically initialize itself if an operation is executed on it that requires it to be initialized.
      Specified by:
      init in interface Repository
      init in class RepositoryWrapper
      RepositoryException - If the initialization failed.
    • setDataDir

      public void setDataDir(File dataDir)
      Description copied from interface: Repository
      Set the directory where data and logging for this repository is stored.
      Specified by:
      setDataDir in interface Repository
      setDataDir in class RepositoryWrapper
      dataDir - the directory where data for this repository is stored
    • shutDown

      public void shutDown() throws RepositoryException
      Description copied from interface: Repository
      Shuts the repository down, releasing any resources that it keeps hold of. Once shut down, the repository can no longer be used until it is re-initialized.
      Specified by:
      shutDown in interface Repository
      shutDown in class RepositoryWrapper