Class SchemaCachingRDFSInferencerConnection
java.lang.Object
org.eclipse.rdf4j.sail.helpers.SailConnectionWrapper
org.eclipse.rdf4j.sail.helpers.NotifyingSailConnectionWrapper
org.eclipse.rdf4j.sail.inferencer.InferencerConnectionWrapper
org.eclipse.rdf4j.sail.inferencer.fc.SchemaCachingRDFSInferencerConnection
- All Implemented Interfaces:
AutoCloseable
,FederatedServiceResolverClient
,ThreadSafetyAware
,InferencerConnection
,NotifyingSailConnection
,SailConnection
,SailConnectionListener
public class SchemaCachingRDFSInferencerConnection
extends InferencerConnectionWrapper
implements SailConnectionListener
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate long
private final NotifyingSailConnection
private static final Resource[]
private boolean
private static final org.slf4j.Logger
private final SchemaCachingRDFSInferencer
private boolean
true iff the schema was changed as part of the transaction.Predicates that determine if a statement changes the schema cacheprivate boolean
true if the base Sail reported added statements.private boolean
true if the base Sail reported removed statements. -
Constructor Summary
ConstructorsConstructorDescriptionSchemaCachingRDFSInferencerConnection
(SchemaCachingRDFSInferencer sail, InferencerConnection connection) -
Method Summary
Modifier and TypeMethodDescription(package private) void
boolean
addInferredStatement
(Resource subj, IRI pred, Value obj, Resource... contexts) Adds an inferred statement to a specific context.(package private) boolean
addInferredStatementInternal
(Resource subj, IRI pred, Value obj, Resource... contexts) private void
addStatement
(boolean actuallyAdd, Resource subject, IRI predicate, Value object, Resource... context) void
addStatement
(Resource subject, IRI predicate, Value object, 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 requiringSailConnection.commit()
orSailConnection.rollback()
to be called to close the transaction.void
begin
(IsolationLevel level) Begins a transaction with the specifiedIsolationLevel
level, requiringSailConnection.commit()
orSailConnection.rollback()
to be called to close the transaction.void
clearInferred
(Resource... contexts) Removes all inferred statements from the specified/all contexts.void
commit()
CallsInferencerConnectionWrapper.flushUpdates()
before forwarding the call to the wrapped connection.(package private) void
void
Flushes any pending updates to be processed and the resulting changes to be reported to registeredSailConnectionListener
s.private boolean
(package private) void
processForSchemaCache
(Statement statement) private void
regenerateCacheAndInferenceMaps
(boolean addInferredStatements) void
rollback()
Rolls back the transaction, discarding any uncommitted changes that have been made in this SailConnection.void
Notifies the listener that a statement has been added in a transaction that it has registered itself with.void
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.inferencer.InferencerConnectionWrapper
evaluate, flush, getContextIDs, getStatements, getWrappedConnection, hasStatement, prepare, removeInferredStatement, size
Methods inherited from class org.eclipse.rdf4j.sail.helpers.NotifyingSailConnectionWrapper
addConnectionListener, removeConnectionListener
Methods inherited from class org.eclipse.rdf4j.sail.helpers.SailConnectionWrapper
clear, clearNamespaces, close, endUpdate, explain, getFederatedServiceResolver, getNamespace, getNamespaces, isActive, isOpen, pendingRemovals, prepareQuery, removeNamespace, removeStatement, removeStatements, setFederatedServiceResolver, setNamespace, setTransactionSettings, size, startUpdate, supportsConcurrentReads
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.NotifyingSailConnection
addConnectionListener, removeConnectionListener
Methods inherited from interface org.eclipse.rdf4j.sail.SailConnection
clear, clearNamespaces, close, endUpdate, explain, getNamespace, getNamespaces, isActive, isOpen, pendingRemovals, prepareQuery, removeNamespace, removeStatement, removeStatements, setNamespace, setTransactionSettings, startUpdate
-
Field Details
-
logger
private static final org.slf4j.Logger logger -
DEFAULT_CONTEXT
-
sail
-
connection
-
statementsRemoved
private boolean statementsRemovedtrue if the base Sail reported removed statements. -
statementsAdded
private boolean statementsAddedtrue if the base Sail reported added statements. -
schemaPredicates
Predicates that determine if a statement changes the schema cache -
schemaChange
private boolean schemaChangetrue iff the schema was changed as part of the transaction. -
addedInferredStatementsCount
private long addedInferredStatementsCount -
inferredCleared
private boolean inferredCleared
-
-
Constructor Details
-
SchemaCachingRDFSInferencerConnection
SchemaCachingRDFSInferencerConnection(SchemaCachingRDFSInferencer sail, InferencerConnection connection)
-
-
Method Details
-
processForSchemaCache
-
clearInferred
Description copied from interface:InferencerConnection
Removes all inferred statements from the specified/all contexts. If no contexts are specified the method operates on the entire repository.- Specified by:
clearInferred
in interfaceInferencerConnection
- Overrides:
clearInferred
in classInferencerConnectionWrapper
- 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 supplied the method operates on the entire repository.- Throws:
SailException
- If the statements could not be removed.
-
commit
Description copied from class:InferencerConnectionWrapper
CallsInferencerConnectionWrapper.flushUpdates()
before forwarding the call to the wrapped connection.- Specified by:
commit
in interfaceSailConnection
- Overrides:
commit
in classInferencerConnectionWrapper
- Throws:
SailException
- If the SailConnection could not be committed.
-
doInferencing
- Throws:
SailException
-
regenerateCacheAndInferenceMaps
private void regenerateCacheAndInferenceMaps(boolean addInferredStatements) -
addInferredStatementInternal
boolean addInferredStatementInternal(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException - Throws:
SailException
-
addInferredStatement
public boolean addInferredStatement(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException Description copied from interface:InferencerConnection
Adds an inferred statement to a specific context.- Specified by:
addInferredStatement
in interfaceInferencerConnection
- Overrides:
addInferredStatement
in classInferencerConnectionWrapper
- 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 supplied the method operates on the entire repository.- Throws:
SailException
- If the statement could not be added.
-
addStatement
public void addStatement(Resource subject, IRI predicate, Value object, Resource... contexts) throws SailException Description copied from interface:SailConnection
Adds a statement to the store.- Specified by:
addStatement
in interfaceSailConnection
- Overrides:
addStatement
in classSailConnectionWrapper
- Parameters:
subject
- The subject of the statement to add.predicate
- The predicate of the statement to add.object
- 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.
-
addStatement
private void addStatement(boolean actuallyAdd, Resource subject, IRI predicate, Value object, Resource... context) throws SailException - Throws:
SailException
-
addAxiomStatements
void addAxiomStatements() -
rollback
Description copied from interface:SailConnection
Rolls back the transaction, discarding any uncommitted changes that have been made in this SailConnection.- Specified by:
rollback
in interfaceSailConnection
- Overrides:
rollback
in classSailConnectionWrapper
- Throws:
SailException
- If the SailConnection could not be rolled back.
-
begin
Description copied from interface:SailConnection
Begins a transaction requiringSailConnection.commit()
orSailConnection.rollback()
to be called to close the transaction. The transaction will use the defaultIsolationLevel
level for the SAIL, as returned bySail.getDefaultIsolationLevel()
.- Specified by:
begin
in interfaceSailConnection
- Overrides:
begin
in classSailConnectionWrapper
- Throws:
SailException
- If the connection could not start a transaction or if a transaction is already active on this connection.
-
begin
Description copied from interface:SailConnection
Begins a transaction with the specifiedIsolationLevel
level, requiringSailConnection.commit()
orSailConnection.rollback()
to be called to close the transaction.- Specified by:
begin
in interfaceSailConnection
- Overrides:
begin
in classSailConnectionWrapper
- Parameters:
level
- the transaction isolation level on which this transaction operates.- Throws:
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.
-
flushUpdates
Description copied from interface:InferencerConnection
Flushes any pending updates to be processed and the resulting changes to be reported to registeredSailConnectionListener
s.- Specified by:
flushUpdates
in interfaceInferencerConnection
- Overrides:
flushUpdates
in classInferencerConnectionWrapper
- Throws:
SailException
- If the updates could not be processed.
-
statementAdded
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 interfaceSailConnectionListener
- Parameters:
st
- The statement that was added.
-
statementRemoved
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 interfaceSailConnectionListener
- Parameters:
st
- The statement that was removed.
-
isSchemaStatement
-
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 aUpdateExpr
operation.- Specified by:
addStatement
in interfaceSailConnection
- Overrides:
addStatement
in classSailConnectionWrapper
- Parameters:
modify
- operation properties of theUpdateExpr
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.
-