Class ShaclSailConnection
java.lang.Object
org.eclipse.rdf4j.sail.helpers.SailConnectionWrapper
org.eclipse.rdf4j.sail.helpers.NotifyingSailConnectionWrapper
org.eclipse.rdf4j.sail.shacl.ShaclSailConnection
- All Implemented Interfaces:
AutoCloseable, FederatedServiceResolverClient, ThreadSafetyAware, NotifyingSailConnection, SailConnection, SailConnectionListener
public class ShaclSailConnection
extends NotifyingSailConnectionWrapper
implements SailConnectionListener
- Author:
- Heshan Jayasinghe, HÃ¥vard Ottestad
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConnectionListener(SailConnectionListener listener) Adds the given listener to the wrapped connection.voidaddStatement(Resource subj, IRI pred, Value obj, 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.voidRemoves all statements from the specified/all contexts.voidclose()Closes the connection.voidcommit()Commits any updates that have been performed since the last timeSailConnection.commit()orSailConnection.rollback()was called.CloseableIteration<? extends Statement> getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) Gets all statements from the specified contexts that have a specific subject, predicate and/or object.booleanhasStatement(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) Determines if the store contains any statements from the specified contexts that have a specific subject, predicate and/or object.voidprepare()Checks for an error state in the active transaction that would force the transaction to be rolled back.voidRemoves the given listener from the wrapped connection.voidremoveStatement(UpdateContext modify, Resource subj, IRI pred, Value obj, Resource... contexts) Removes all statements matching the specified subject, predicate and object from the repository.voidremoveStatements(Resource subj, IRI pred, Value obj, Resource... contexts) Removes all statements matching the specified subject, predicate and object from the repository.voidrollback()Rolls back the transaction, discarding any uncommitted changes that have been made in this SailConnection.voidsetTransactionSettings(TransactionSetting... settings) Pass any transaction-specific settings to the SailConnection.voidstatementAdded(Statement statement) Notifies the listener that a statement has been added in a transaction that it has registered itself with.voidstatementAdded(Statement statement, boolean inferred) Notifies the listener that a statement has been added in a transaction that it has registered itself with.voidstatementRemoved(Statement statement) Notifies the listener that a statement has been removed in a transaction that it has registered itself with.voidstatementRemoved(Statement statement, boolean inferred) Notifies the listener that a statement has been removed in a transaction that it has registered itself with.Methods inherited from class NotifyingSailConnectionWrapper
getWrappedConnectionModifier and TypeMethodDescriptionGets the connection that is wrapped by this object.Methods inherited from class SailConnectionWrapper
clearNamespaces, endUpdate, evaluate, explain, flush, getComparator, getContextIDs, getFederatedServiceResolver, getNamespace, getNamespaces, getStatements, getSupportedOrders, isActive, isOpen, prepareQuery, removeNamespace, setFederatedServiceResolver, setNamespace, size, size, startUpdate, supportsConcurrentReadsModifier and TypeMethodDescriptionvoidRemoves all namespace declarations from the repository.voidendUpdate(UpdateContext modify) Indicates that the givenopwill not be used in any call again.CloseableIteration<? extends BindingSet> evaluate(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred) Evaluates the supplied TupleExpr on the data contained in this Sail object, using the (optional) dataset and supplied bindings as input parameters.explain(Explanation.Level level, TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred, int timeoutSeconds) Explain how the TupleExpr will be (or has been) executed/evaluated by returning a TupleExpr (which may or may not be the provided TupleExpr) that has gone through zero or more of the stages prior to and also including execution as specified by the provided level.voidflush()Flushes any pending updates and notify changes to listeners as appropriate.Different underlying datastructures may have different ways of ordering statements.CloseableIteration<? extends Resource> Returns the set of all unique context identifiers that are used to store statements.Gets theFederatedServiceResolverused by this client.getNamespace(String prefix) Gets the namespace that is associated with the specified prefix, if any.CloseableIteration<? extends Namespace> Gets the namespaces relevant to the data contained in this Sail object.CloseableIteration<? extends Statement> getStatements(StatementOrder statementOrder, Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) Gets all statements from the specified contexts that have a specific subject, predicate and/or object.getSupportedOrders(Resource subj, IRI pred, Value obj, Resource... contexts) The underlying store may support some, but not all, statement orders based on the statement pattern.booleanisActive()Indicates if a transaction is currently active on the connection.booleanisOpen()Checks whether this SailConnection is open.prepareQuery(QueryLanguage ql, Query.QueryType type, String query, String baseURI) Allows the SailConnection to bypass the standard query parser and provide its own internalTupleExprimplementation.voidremoveNamespace(String prefix) Removes a namespace declaration by removing the association between a prefix and a namespace name.voidSets theFederatedServiceResolverto use for this client.voidsetNamespace(String prefix, String name) Sets the prefix for a namespace.longlongReturns the number of (explicit) statements in the store, or in specific contexts.voidstartUpdate(UpdateContext modify) Signals the start of an update operation.booleanA class may support concurrent reads from multiple threads against the same object.
-
Field Details
-
sail
-
-
Method Details
-
setTransactionSettings
Description copied from interface:SailConnectionPass any transaction-specific settings to the SailConnection. This method needs to be called before the transaction isstarted.Sail implementations can override this method to receive the transaction settings (to inspect and/or pass them along to any wrapped sail objects). Remember to call
super.setTransactionSettings(settings)if you override this method.- Specified by:
setTransactionSettingsin interfaceSailConnection- Overrides:
setTransactionSettingsin classSailConnectionWrapper- Parameters:
settings- the transaction settings on which the next transaction operates. It may or may not contain the isolation level.
-
begin
Description 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
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:
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.
-
addConnectionListener
Description copied from class:NotifyingSailConnectionWrapperAdds the given listener to the wrapped connection.- Specified by:
addConnectionListenerin interfaceNotifyingSailConnection- Overrides:
addConnectionListenerin classNotifyingSailConnectionWrapper- Parameters:
listener- A SailConnectionListener.
-
removeConnectionListener
Description copied from class:NotifyingSailConnectionWrapperRemoves the given listener from the wrapped connection.- Specified by:
removeConnectionListenerin interfaceNotifyingSailConnection- Overrides:
removeConnectionListenerin classNotifyingSailConnectionWrapper- Parameters:
listener- A SailConnectionListener.
-
commit
Description copied from interface:SailConnectionCommits any updates that have been performed since the last timeSailConnection.commit()orSailConnection.rollback()was called.- Specified by:
commitin interfaceSailConnection- Overrides:
commitin classSailConnectionWrapper- Throws:
SailException- If the SailConnection could not be committed.
-
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.
-
removeStatement
public void removeStatement(UpdateContext modify, Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException Description copied from interface:SailConnectionRemoves all statements matching the specified subject, predicate and object from the repository. All three parameters may be null to indicate wildcards. Called when removing statements through aUpdateExproperation.- Specified by:
removeStatementin interfaceSailConnection- Overrides:
removeStatementin classSailConnectionWrapper- Parameters:
modify- operation properties of theUpdateExproperation removing these statements.subj- The subject of the statement that should be removed.pred- The predicate of the statement that should be removed.obj- The object of the statement that should be removed.contexts- The context(s) from which to remove the statement. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A null value can be used to match context-less statements.- Throws:
SailException- If the statement could not be removed, for example because no transaction is active.
-
addStatement
public void addStatement(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException Description copied from interface:SailConnectionAdds a statement to the store.- Specified by:
addStatementin interfaceSailConnection- Overrides:
addStatementin classSailConnectionWrapper- 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 specified, a context-less statement will be added.- Throws:
SailException- If the statement could not be added, for example because no transaction is active.
-
removeStatements
public void removeStatements(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException Description copied from interface:SailConnectionRemoves all statements matching the specified subject, predicate and object from the repository. All three parameters may be null to indicate wildcards.- Specified by:
removeStatementsin interfaceSailConnection- Overrides:
removeStatementsin classSailConnectionWrapper- Parameters:
subj- The subject of the statement that should be removed, or null to indicate a wildcard.pred- The predicate of the statement that should be removed, or null to indicate a wildcard.obj- The object of the statement that should be removed , or null to indicate a wildcard. *contexts- The context(s) from which to remove the statement. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A null value can be used to match context-less statements.- Throws:
SailException- If the statement could not be removed, for example because no transaction is active.
-
clear
Description copied from interface:SailConnectionRemoves all statements from the specified/all contexts. If no contexts are specified the method operates on the entire repository.- Specified by:
clearin interfaceSailConnection- Overrides:
clearin classSailConnectionWrapper- 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 specified the method operates on the entire repository. A null value can be used to match context-less statements.- Throws:
SailException- If the statements could not be removed.
-
rollback
Description 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:
SailException- If the SailConnection could not be rolled back.
-
close
Description copied from interface:SailConnectionCloses the connection. Any updates that haven't been committed yet will be rolled back. The connection can no longer be used once it is closed.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceSailConnection- Overrides:
closein classSailConnectionWrapper- Throws:
SailException
-
prepare
Description copied from interface:SailConnectionChecks for an error state in the active transaction that would force the transaction to be rolled back. This is an optional call; calling or not calling this method should have no effect on the outcome ofSailConnection.commit()orSailConnection.rollback(). A call to this method must be followed by (in the same thread) with a call toSailConnection.prepare(),SailConnection.commit(),SailConnection.rollback(), orSailConnection.close(). This method may be called multiple times within the same transaction by the same thread. If this method returns normally, the caller can reasonably expect that a subsequent call toSailConnection.commit()will also return normally. If this method returns with an exception the caller should treat the exception as if it came from a call toSailConnection.commit().- Specified by:
preparein interfaceSailConnection- Overrides:
preparein classSailConnectionWrapper- Throws:
SailException- If there is an active transaction and it cannot be committed.
-
statementAdded
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:
statement- The statement that was added.
-
statementAdded
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:
statement- The statement that was added.inferred- The flag that indicates whether the statement is inferred or explicit.
-
statementRemoved
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:
statement- The statement that was removed.
-
statementRemoved
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:
statement- The statement that was removed.inferred- The flag that indicates whether the statement was inferred or explicit.
-
getRdfsSubClassOfReasoner
-
getStatements
public CloseableIteration<? extends Statement> getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException Description copied from interface:SailConnectionGets all statements from the specified contexts that have a specific subject, predicate and/or object. All three parameters may be null to indicate wildcards. The includeInferred parameter can be used to control which statements are fetched: all statements or only the statements that have been added explicitly.- Specified by:
getStatementsin interfaceSailConnection- Overrides:
getStatementsin classSailConnectionWrapper- Parameters:
subj- A Resource specifying the subject, or null for a wildcard.pred- A URI specifying the predicate, or null for a wildcard.obj- A Value specifying the object, or null for a wildcard.includeInferred- if false, no inferred statements are returned; if true, inferred statements are returned if availablecontexts- The context(s) to get the data from. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A null value can be used to match context-less statements.- Returns:
- The statements matching the specified pattern.
- Throws:
SailException- If the Sail object encountered an error or unexpected situation internally.
-
hasStatement
public boolean hasStatement(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException Description copied from interface:SailConnectionDetermines if the store contains any statements from the specified contexts that have a specific subject, predicate and/or object. All three parameters may be null to indicate wildcards. The includeInferred parameter can be used to control which statements are checked: all statements or only the statements that have been added explicitly.- Specified by:
hasStatementin interfaceSailConnection- Overrides:
hasStatementin classSailConnectionWrapper- Parameters:
subj- A Resource specifying the subject, or null for a wildcard.pred- An IRI specifying the predicate, or null for a wildcard.obj- A Value specifying the object, or null for a wildcard.includeInferred- if false, no inferred statements are returned; if true, inferred statements are returned if availablecontexts- The context(s) to get the data from. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A null value can be used to match context-less statements.- Returns:
trueiff the store contains any statements matching the supplied criteria,falseotherwise.- Throws:
SailException- If the Sail object encountered an error or unexpected situation internally.
-
revalidate
-