public interface SailConnection extends AutoCloseable
Modifier and Type | Method and Description |
---|---|
void |
addStatement(Resource subj,
IRI pred,
Value obj,
Resource... contexts)
Adds a statement to the store.
|
default void |
addStatement(Resource subj,
URI pred,
Value obj,
Resource... contexts)
Deprecated.
since 4.0. Use
addStatement(Resource, IRI, Value, Resource...) instead. |
void |
addStatement(UpdateContext op,
Resource subj,
IRI pred,
Value obj,
Resource... contexts)
Adds a statement to the store.
|
default void |
addStatement(UpdateContext op,
Resource subj,
URI pred,
Value obj,
Resource... contexts)
Deprecated.
since 4.0. Use
addStatement(UpdateContext, Resource, IRI, Value, Resource...) instead. |
void |
begin()
Begins a transaction requiring
commit() or rollback() to be called to close the transaction. |
void |
begin(IsolationLevel level)
Begins a transaction with the specified
IsolationLevel level, requiring commit() or
rollback() to be called to close the transaction. |
void |
clear(Resource... contexts)
Removes all statements from the specified/all contexts.
|
void |
clearNamespaces()
Removes all namespace declarations from the repository.
|
void |
close()
Closes the connection.
|
void |
commit()
Commits any updates that have been performed since the last time
commit() or rollback() was
called. |
void |
endUpdate(UpdateContext op)
Indicates that the given
op will not be used in any call again. |
CloseableIteration<? extends BindingSet,QueryEvaluationException> |
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.
|
default Explanation |
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.
|
void |
flush()
Flushes any pending updates and notify changes to listeners as appropriate.
|
CloseableIteration<? extends Resource,SailException> |
getContextIDs()
Returns the set of all unique context identifiers that are used to store statements.
|
String |
getNamespace(String prefix)
Gets the namespace that is associated with the specified prefix, if any.
|
CloseableIteration<? extends Namespace,SailException> |
getNamespaces()
Gets the namespaces relevant to the data contained in this Sail object.
|
CloseableIteration<? extends Statement,SailException> |
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.
|
default CloseableIteration<? extends Statement,SailException> |
getStatements(Resource subj,
URI pred,
Value obj,
boolean includeInferred,
Resource... contexts)
Deprecated.
since 4.0. Use
getStatements(Resource, IRI, Value, boolean, Resource...) instead. |
default boolean |
hasStatement(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.
|
boolean |
isActive()
Indicates if a transaction is currently active on the connection.
|
boolean |
isOpen()
Checks whether this SailConnection is open.
|
boolean |
pendingRemovals()
Deprecated.
|
void |
prepare()
Checks for an error state in the active transaction that would force the transaction to be rolled back.
|
default Optional<TupleExpr> |
prepareQuery(QueryLanguage ql,
Query.QueryType type,
String query,
String baseURI)
Allows the SailConnection to bypass the standard query parser and provide its own internal
TupleExpr
implementation. |
void |
removeNamespace(String prefix)
Removes a namespace declaration by removing the association between a prefix and a namespace name.
|
void |
removeStatement(UpdateContext op,
Resource subj,
IRI pred,
Value obj,
Resource... contexts)
Removes all statements matching the specified subject, predicate and object from the repository.
|
default void |
removeStatement(UpdateContext op,
Resource subj,
URI pred,
Value obj,
Resource... contexts)
Deprecated.
since 4.0. USe
removeStatement(UpdateContext, Resource, IRI, Value, Resource...) instead. |
void |
removeStatements(Resource subj,
IRI pred,
Value obj,
Resource... contexts)
Removes all statements matching the specified subject, predicate and object from the repository.
|
default void |
removeStatements(Resource subj,
URI pred,
Value obj,
Resource... contexts)
Deprecated.
since 4.0. Use
removeStatements(Resource, IRI, Value, Resource...) instead. |
void |
rollback()
Rolls back the transaction, discarding any uncommitted changes that have been made in this SailConnection.
|
void |
setNamespace(String prefix,
String name)
Sets the prefix for a namespace.
|
default void |
setTransactionSettings(TransactionSetting... settings)
Pass any transaction-specific settings to the SailConnection.
|
long |
size(Resource... contexts)
Returns the number of (explicit) statements in the store, or in specific contexts.
|
void |
startUpdate(UpdateContext op)
Signals the start of an update operation.
|
boolean isOpen() throws SailException
SailException
close()
void close() throws SailException
close
in interface AutoCloseable
SailException
default Optional<TupleExpr> prepareQuery(QueryLanguage ql, Query.QueryType type, String query, String baseURI)
TupleExpr
implementation. By default this method returns an empty result, signaling that it will rely on the RDF4J query
parser.ql
- the query language.type
- indicates if the supplied query is a graph, tuple, or boolean queryquery
- the unparsed query stringbaseURI
- the provided base URI. May be null or empty.evaluate(org.eclipse.rdf4j.query.algebra.TupleExpr, org.eclipse.rdf4j.query.Dataset, org.eclipse.rdf4j.query.BindingSet, boolean)
can
process. Returns Optional.empty()
if the Sail does not provide its own query processing.CloseableIteration<? extends BindingSet,QueryEvaluationException> evaluate(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred) throws SailException
tupleExpr
- The tuple expression to evaluate.dataset
- The dataset to use for evaluating the query, null to use the Sail's default
dataset.bindings
- A set of input parameters for the query evaluation. The keys reference variable names that
should be bound to the value they map to.includeInferred
- Indicates whether inferred triples are to be considered in the query result. If false, no
inferred statements are returned; if true, inferred statements are returned if availableSailException
- If the Sail object encountered an error or unexpected situation internally.IllegalStateException
- If the connection has been closed.CloseableIteration<? extends Resource,SailException> getContextIDs() throws SailException
IllegalStateException
- If the connection has been closed.SailException
CloseableIteration<? extends Statement,SailException> getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException
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.SailException
- If the Sail object encountered an error or unexpected situation internally.IllegalStateException
- If the connection has been closed.@Deprecated default CloseableIteration<? extends Statement,SailException> getStatements(Resource subj, URI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException
getStatements(Resource, IRI, Value, boolean, Resource...)
instead.SailException
default boolean hasStatement(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException
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.true
iff the store contains any statements matching the supplied criteria,
false
otherwise.SailException
- If the Sail object encountered an error or unexpected situation internally.IllegalStateException
- If the connection has been closed.long size(Resource... contexts) throws SailException
contexts
- The context(s) to determine the size of. 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.IllegalStateException
- If the connection has been closed.SailException
void begin() throws SailException
commit()
or rollback()
to be called to close the transaction.
The transaction will use the default IsolationLevel
level for the SAIL, as returned by
Sail.getDefaultIsolationLevel()
.SailException
- If the connection could not start a transaction or if a transaction is already active on
this connection.void begin(IsolationLevel level) throws UnknownSailTransactionStateException, SailException
IsolationLevel
level, requiring commit()
or
rollback()
to be called to close the transaction.level
- the transaction isolation level on which this transaction operates.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.default void setTransactionSettings(TransactionSetting... settings)
started
.
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.
settings
- the transaction settings on which the next transaction operates. It may or may not contain the
isolation level.void flush() throws SailException
prepare()
. This method may be called multiple times
within the same transaction.SailException
- If the updates could not be processed, for example because no transaction is
active.IllegalStateException
- If the connection has been closed.void prepare() throws SailException
commit()
or
rollback()
. A call to this method must be followed by (in the same thread) with a call to
prepare()
, commit()
, rollback()
, or 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 to 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 to commit()
.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 there is an active transaction and it cannot be committed.IllegalStateException
- If the connection has been closed or prepare was already called by
another thread.void commit() throws SailException
commit()
or rollback()
was
called.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.IllegalStateException
- If the connection has been closed.void rollback() throws SailException
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.IllegalStateException
- If the connection has been closed.boolean isActive() throws UnknownSailTransactionStateException
begin()
has
been called, and becomes inactive after commit()
or rollback()
has been called.true
iff a transaction is active, false
iff no transaction is active.UnknownSailTransactionStateException
- if the transaction state can not be determined (this can happen for
instance when communication between client and server fails or times
out).void addStatement(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException
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.SailException
- If the statement could not be added, for example because no transaction is active.IllegalStateException
- If the connection has been closed.@Deprecated default void addStatement(Resource subj, URI pred, Value obj, Resource... contexts) throws SailException
addStatement(Resource, IRI, Value, Resource...)
instead.SailException
void removeStatements(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException
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.SailException
- If the statement could not be removed, for example because no transaction is
active.IllegalStateException
- If the connection has been closed.@Deprecated default void removeStatements(Resource subj, URI pred, Value obj, Resource... contexts) throws SailException
removeStatements(Resource, IRI, Value, Resource...)
instead.SailException
void startUpdate(UpdateContext op) throws SailException
op
maybe passed to subsequent
addStatement(UpdateContext, Resource, IRI, Value, Resource...)
or
removeStatement(UpdateContext, Resource, IRI, Value, Resource...)
calls before
endUpdate(UpdateContext)
is called.SailException
void addStatement(UpdateContext op, Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException
UpdateExpr
operation.op
- operation properties of the UpdateExpr
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.SailException
- If the statement could not be added, for example because no transaction is active.IllegalStateException
- If the connection has been closed.@Deprecated default void addStatement(UpdateContext op, Resource subj, URI pred, Value obj, Resource... contexts) throws SailException
addStatement(UpdateContext, Resource, IRI, Value, Resource...)
instead.SailException
void removeStatement(UpdateContext op, Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException
UpdateExpr
operation.op
- operation properties of the UpdateExpr
operation 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.SailException
- If the statement could not be removed, for example because no transaction is
active.IllegalStateException
- If the connection has been closed.@Deprecated default void removeStatement(UpdateContext op, Resource subj, URI pred, Value obj, Resource... contexts) throws SailException
removeStatement(UpdateContext, Resource, IRI, Value, Resource...)
instead.SailException
void endUpdate(UpdateContext op) throws SailException
op
will not be used in any call again. Implementations should use this to
flush of any temporary operation states that may have occurred.op
- SailException
void clear(Resource... contexts) throws SailException
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.SailException
- If the statements could not be removed.IllegalStateException
- If the connection has been closed.CloseableIteration<? extends Namespace,SailException> getNamespaces() throws SailException
SailException
- If the Sail object encountered an error or unexpected situation internally.IllegalStateException
- If the connection has been closed.String getNamespace(String prefix) throws SailException
prefix
- A namespace prefix, or an empty string in case of the default namespace.SailException
- If the Sail object encountered an error or unexpected situation internally.NullPointerException
- In case prefix is null.IllegalStateException
- If the connection has been closed.void setNamespace(String prefix, String name) throws SailException
prefix
- The new prefix, or an empty string in case of the default namespace.name
- The namespace name that the prefix maps to.SailException
- If the Sail object encountered an error or unexpected situation internally.NullPointerException
- In case prefix or name is null.IllegalStateException
- If the connection has been closed.void removeNamespace(String prefix) throws SailException
prefix
- The namespace prefix, or an empty string in case of the default namespace.SailException
- If the Sail object encountered an error or unexpected situation internally.NullPointerException
- In case prefix is null.IllegalStateException
- If the connection has been closed.void clearNamespaces() throws SailException
SailException
- If the Sail object encountered an error or unexpected situation internally.IllegalStateException
- If the connection has been closed.@Deprecated boolean pendingRemovals()
flushed
) for the
current transaction.flush()
@Experimental default Explanation 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.
This method is used by the Query interface.
WARNING: This method is experimental and is subject to change or removal without warning. There is currently only partial support for this method in RDF4J and and UnsupportedOperationException where support is lacking.
level
- the explanation level, eg. OPTIMIZEDtupleExpr
- The tuple expression to evaluate. Mutable.dataset
- The dataset to use for evaluating the query, null to use the Sail's default
dataset.bindings
- A set of input parameters for the query evaluation. The keys reference variable names that
should be bound to the value they map to.includeInferred
- Indicates whether inferred triples are to be considered in the query result. If false, no
inferred statements are returned; if true, inferred statements are returned if availabletimeoutSeconds
- for explanations that require execution a timeout can be provided in secondsCopyright © 2015-2020 Eclipse Foundation. All Rights Reserved.