public final class LoggingTripleStore extends ForwardingTripleStore
TripleStore
wrapper that log calls to the operations of a wrapped TripleStore
and their execution times.
This wrapper intercepts calls to an underlying TripleStore
and to the
TripleTransaction
s it creates, and logs request information and execution times via
SLF4J (level DEBUG, logger named after this class). The overhead introduced by this wrapper
when logging is disabled is negligible.
Constructor and Description |
---|
LoggingTripleStore(TripleStore delegate)
Creates a new instance for the wrapped
TripleStore specified. |
Modifier and Type | Method and Description |
---|---|
TripleTransaction |
begin(boolean readOnly)
Begins a new read-only / read-write triple store transaction.
|
void |
close()
Closes this
Component object. |
protected TripleStore |
delegate() |
void |
init()
Initializes the
Component with the supplied Runtime object. |
void |
reset()
Resets the triple store contents, possibly recreating or reinitializing the external
services / files this triple store is based on.
|
toString
public LoggingTripleStore(TripleStore delegate)
TripleStore
specified.delegate
- the wrapped TripleStore
protected TripleStore delegate()
delegate
in class ForwardingTripleStore
public void init() throws IOException
Component
Component
with the supplied Runtime
object. This method is
called after the instantiation of a Component
and before any other instance method
is called. It provides a Runtime
that can be used to access runtime services such
as locking, serialization and filesystem access. The Component
is allowed to
perform any initialization operation that is necessary in order to become functional; on
failure, these operations may result in a IOException
being thrown.init
in interface Component
init
in class ForwardingTripleStore
IOException
- in case initialization failspublic TripleTransaction begin(boolean readOnly) throws IOException
TripleStore
begin
in interface TripleStore
begin
in class ForwardingTripleStore
readOnly
- true if the transaction is not allowed to modify the contents of the
triple store (this allows for optimizing the access to the triple store).DataCorruptedException
- in case a transaction cannot be started due to triple store files being damaged
or non-existing; a TripleStore.reset()
call followed by a full triple store
re-population should be attempted to recover this situationIOException
- if another IO error occurs while starting the transaction, not implying a data
corruption situationpublic void reset() throws IOException
TripleStore
reset
in interface TripleStore
reset
in class ForwardingTripleStore
IOException
- if an IO error occurs while resetting the triple store (this situation is not
expected to be recovered automatically via code).public void close()
Component
Component
object. If the component has been initialized, closing a it
causes any allocated resource to be freed and any operation or transaction ongoing within
the component being aborted; in case the component has not been initialized yet, or
close()
has already being called, calling this method has no effect. Note that the
operation affects only the local Component
object and not any remote service this
object may rely on to implement its functionalities; in particular, such a remote service
is not shutdown by the operation, so that it can be accessed by other Component
instances possibly running in other (virtual) machines. Similarly, closing a
Component
object has no impact on stored data, that continues to be persisted and
will be accessed unchanged (provided no external modification occurs) the next time a
similarly configured Component
is created.close
in interface Component
close
in interface Closeable
close
in interface AutoCloseable
close
in class ForwardingTripleStore
Copyright © 2015–2016 FBK-irst. All rights reserved.