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:
java.lang.AutoCloseable,FederatedServiceResolverClient,ThreadSafetyAware,InferencerConnection,NotifyingSailConnection,SailConnection,SailConnectionListener
public class SchemaCachingRDFSInferencerConnection extends InferencerConnectionWrapper implements SailConnectionListener
-
-
Field Summary
Fields Modifier and Type Field Description private longaddedInferredStatementsCountprivate NotifyingSailConnectionconnectionprivate static Resource[]DEFAULT_CONTEXTprivate booleaninferredClearedprivate static org.slf4j.Loggerloggerprivate SchemaCachingRDFSInferencersailprivate booleanschemaChangetrue iff the schema was changed as part of the transaction.private java.util.List<IRI>schemaPredicatesPredicates that determine if a statement changes the schema cacheprivate booleanstatementsAddedtrue if the base Sail reported added statements.private booleanstatementsRemovedtrue if the base Sail reported removed statements.
-
Constructor Summary
Constructors Constructor Description SchemaCachingRDFSInferencerConnection(SchemaCachingRDFSInferencer sail, InferencerConnection connection)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidaddAxiomStatements()booleanaddInferredStatement(Resource subj, IRI pred, Value obj, Resource... contexts)Adds an inferred statement to a specific context.(package private) booleanaddInferredStatementInternal(Resource subj, IRI pred, Value obj, Resource... contexts)private voidaddStatement(boolean actuallyAdd, Resource subject, IRI predicate, Value object, Resource... context)voidaddStatement(Resource subject, IRI predicate, Value object, Resource... contexts)Adds a statement to the store.voidaddStatement(UpdateContext modify, Resource subj, IRI pred, Value obj, Resource... contexts)Adds a statement to the store.voidbegin()Begins a transaction requiringSailConnection.commit()orSailConnection.rollback()to be called to close the transaction.voidbegin(IsolationLevel level)Begins a transaction with the specifiedIsolationLevellevel, requiringSailConnection.commit()orSailConnection.rollback()to be called to close the transaction.voidclearInferred(Resource... contexts)Removes all inferred statements from the specified/all contexts.voidcommit()CallsInferencerConnectionWrapper.flushUpdates()before forwarding the call to the wrapped connection.(package private) voiddoInferencing()voidflushUpdates()Flushes any pending updates to be processed and the resulting changes to be reported to registeredSailConnectionListeners.private booleanisSchemaStatement(Statement st)(package private) voidprocessForSchemaCache(Statement statement)private voidregenerateCacheAndInferenceMaps(boolean addInferredStatements)voidrollback()Rolls back the transaction, discarding any uncommitted changes that have been made in this SailConnection.voidstatementAdded(Statement st)Notifies the listener that a statement has been added in a transaction that it has registered itself with.voidstatementRemoved(Statement st)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 Detail
-
logger
private static final org.slf4j.Logger logger
-
DEFAULT_CONTEXT
private static final Resource[] DEFAULT_CONTEXT
-
sail
private final SchemaCachingRDFSInferencer sail
-
connection
private final NotifyingSailConnection connection
-
statementsRemoved
private boolean statementsRemoved
true if the base Sail reported removed statements.
-
statementsAdded
private boolean statementsAdded
true if the base Sail reported added statements.
-
schemaPredicates
private final java.util.List<IRI> schemaPredicates
Predicates that determine if a statement changes the schema cache
-
schemaChange
private boolean schemaChange
true iff the schema was changed as part of the transaction.
-
addedInferredStatementsCount
private long addedInferredStatementsCount
-
inferredCleared
private boolean inferredCleared
-
-
Constructor Detail
-
SchemaCachingRDFSInferencerConnection
SchemaCachingRDFSInferencerConnection(SchemaCachingRDFSInferencer sail, InferencerConnection connection)
-
-
Method Detail
-
processForSchemaCache
void processForSchemaCache(Statement statement)
-
clearInferred
public void clearInferred(Resource... contexts) throws SailException
Description copied from interface:InferencerConnectionRemoves all inferred statements from the specified/all contexts. If no contexts are specified the method operates on the entire repository.- Specified by:
clearInferredin interfaceInferencerConnection- Overrides:
clearInferredin 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
public void commit() throws SailExceptionDescription copied from class:InferencerConnectionWrapperCallsInferencerConnectionWrapper.flushUpdates()before forwarding the call to the wrapped connection.- Specified by:
commitin interfaceSailConnection- Overrides:
commitin classInferencerConnectionWrapper- Throws:
UnknownSailTransactionStateException- If the transaction state can not be determined (this can happen for instance when communication between client and server fails or times-out). It does not indicate a problem with the integrity of the store.SailException- If the SailConnection could not be committed.
-
doInferencing
void doInferencing() throws SailException- 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:InferencerConnectionAdds an inferred statement to a specific context.- Specified by:
addInferredStatementin interfaceInferencerConnection- Overrides:
addInferredStatementin 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:SailConnectionAdds a statement to the store.- Specified by:
addStatementin interfaceSailConnection- Overrides:
addStatementin 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
public void rollback() throws SailExceptionDescription copied from interface:SailConnectionRolls back the transaction, discarding any uncommitted changes that have been made in this SailConnection.- Specified by:
rollbackin interfaceSailConnection- Overrides:
rollbackin classSailConnectionWrapper- Throws:
UnknownSailTransactionStateException- If the transaction state can not be determined (this can happen for instance when communication between client and server fails or times-out). It does not indicate a problem with the integrity of the store.SailException- If the SailConnection could not be rolled back.
-
begin
public void begin() throws SailExceptionDescription copied from interface:SailConnectionBegins a transaction requiringSailConnection.commit()orSailConnection.rollback()to be called to close the transaction. The transaction will use the defaultIsolationLevellevel for the SAIL, as returned bySail.getDefaultIsolationLevel().- Specified by:
beginin interfaceSailConnection- Overrides:
beginin classSailConnectionWrapper- Throws:
SailException- If the connection could not start a transaction or if a transaction is already active on this connection.
-
begin
public void begin(IsolationLevel level) throws SailException
Description copied from interface:SailConnectionBegins a transaction with the specifiedIsolationLevellevel, requiringSailConnection.commit()orSailConnection.rollback()to be called to close the transaction.- Specified by:
beginin interfaceSailConnection- Overrides:
beginin classSailConnectionWrapper- Parameters:
level- the transaction isolation level on which this transaction operates.- Throws:
UnknownSailTransactionStateException- If the IsolationLevel is not supported by this implementationSailException- 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
public void flushUpdates() throws SailExceptionDescription copied from interface:InferencerConnectionFlushes any pending updates to be processed and the resulting changes to be reported to registeredSailConnectionListeners.- Specified by:
flushUpdatesin interfaceInferencerConnection- Overrides:
flushUpdatesin classInferencerConnectionWrapper- Throws:
SailException- If the updates could not be processed.
-
statementAdded
public void statementAdded(Statement st)
Description copied from interface:SailConnectionListenerNotifies the listener that a statement has been added in a transaction that it has registered itself with.- Specified by:
statementAddedin interfaceSailConnectionListener- Parameters:
st- The statement that was added.
-
statementRemoved
public void statementRemoved(Statement st)
Description copied from interface:SailConnectionListenerNotifies the listener that a statement has been removed in a transaction that it has registered itself with.- Specified by:
statementRemovedin interfaceSailConnectionListener- Parameters:
st- The statement that was removed.
-
isSchemaStatement
private boolean isSchemaStatement(Statement st)
-
addStatement
public void addStatement(UpdateContext modify, Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException
Description copied from interface:SailConnectionAdds a statement to the store. Called when adding statements through aUpdateExproperation.- Specified by:
addStatementin interfaceSailConnection- Overrides:
addStatementin classSailConnectionWrapper- Parameters:
modify- operation properties of theUpdateExproperation 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.
-
-