Class InterceptingRepositoryWrapper
java.lang.Object
org.eclipse.rdf4j.repository.base.RepositoryWrapper
org.eclipse.rdf4j.repository.event.base.InterceptingRepositoryWrapper
- All Implemented Interfaces:
DelegatingRepository
,InterceptingRepository
,Repository
public class InterceptingRepositoryWrapper
extends RepositoryWrapper
implements InterceptingRepository
Wrapper that notifies interceptors of events on Repositories before they happen. Any interceptor can block the
operation by returning true from the relevant notification method. To do so will also cause the notification process
to stop, i.e. no other interceptors will be notified. The order in which interceptors are notified is unspecified.
- Author:
- Herko ter Horst
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Registers a RepositoryConnectionInterceptor that will receive notifications of operations that are performed on any connections that are created by this repository.void
addRepositoryInterceptor
(RepositoryInterceptor interceptor) Registers a RepositoryInterceptor that will receive notifications of operations that are performed on this repository.Opens a connection to this repository that can be used for querying and updating the contents of the repository.void
init()
Initializes this repository.void
Removes a registered RepositoryConnectionInterceptor from this repository.void
removeRepositoryInterceptor
(RepositoryInterceptor interceptor) Removes a registered RepositoryInterceptor from this repository.void
setDataDir
(File dataDir) Set the directory where data and logging for this repository is stored.void
shutDown()
Shuts the repository down, releasing any resources that it keeps hold of.Methods inherited from class org.eclipse.rdf4j.repository.base.RepositoryWrapper
getDataDir, getDelegate, getValueFactory, isInitialized, isWritable, setDelegate, toString
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.Repository
getDataDir, getValueFactory, isInitialized, isWritable
-
Constructor Details
-
InterceptingRepositoryWrapper
public InterceptingRepositoryWrapper() -
InterceptingRepositoryWrapper
-
-
Method Details
-
addRepositoryInterceptor
Registers a RepositoryInterceptor that will receive notifications of operations that are performed on this repository.- Specified by:
addRepositoryInterceptor
in interfaceInterceptingRepository
-
removeRepositoryInterceptor
Removes a registered RepositoryInterceptor from this repository.- Specified by:
removeRepositoryInterceptor
in interfaceInterceptingRepository
-
addRepositoryConnectionInterceptor
Registers a RepositoryConnectionInterceptor that will receive notifications of operations that are performed on any connections that are created by this repository.- Specified by:
addRepositoryConnectionInterceptor
in interfaceInterceptingRepository
-
removeRepositoryConnectionInterceptor
Removes a registered RepositoryConnectionInterceptor from this repository.- Specified by:
removeRepositoryConnectionInterceptor
in interfaceInterceptingRepository
-
getConnection
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 thatRepositoryConnection
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 ownRepositoryConnection
s.- Specified by:
getConnection
in interfaceRepository
- Overrides:
getConnection
in classRepositoryWrapper
- Returns:
- A connection that allows operations on this repository.
- Throws:
RepositoryException
- If something went wrong during the creation of the Connection.
-
init
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 interfaceRepository
- Overrides:
init
in classRepositoryWrapper
- Throws:
RepositoryException
- If the initialization failed.
-
setDataDir
Description copied from interface:Repository
Set the directory where data and logging for this repository is stored.- Specified by:
setDataDir
in interfaceRepository
- Overrides:
setDataDir
in classRepositoryWrapper
- Parameters:
dataDir
- the directory where data for this repository is stored
-
shutDown
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 interfaceRepository
- Overrides:
shutDown
in classRepositoryWrapper
- Throws:
RepositoryException
-