public class SailRepositoryConnection extends AbstractRepositoryConnection implements FederatedServiceResolverClient, RepositoryResolverClient, HttpClientDependent, SessionManagerDependent
RepositoryConnection interface that wraps a SailConnection.logger| Modifier | Constructor and Description |
|---|---|
protected |
SailRepositoryConnection(SailRepository repository,
SailConnection sailConnection)
Creates a new repository connection that will wrap the supplied SailConnection.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addWithoutCommit(Resource subject,
IRI predicate,
Value object,
Resource... contexts) |
void |
begin()
Begins a new transaction, requiring
RepositoryConnection.commit() or RepositoryConnection.rollback() to be called to end the transaction. |
void |
begin(IsolationLevel level)
Begins a new transaction with the supplied
IsolationLevel, requiring RepositoryConnection.commit() or
RepositoryConnection.rollback() to be called to end the transaction. |
void |
begin(TransactionSetting... settings)
Begins a new transaction with the supplied
TransactionSetting, requiring RepositoryConnection.commit() or
RepositoryConnection.rollback() to be called to end the transaction. |
void |
clear(Resource... contexts)
Removes all statements from a specific contexts in the repository.
|
void |
clearNamespaces()
Removes all namespace declarations from the repository.
|
void |
close()
Closes the connection, freeing resources.
|
void |
commit()
Commits the active transaction.
|
protected <E> RepositoryResult<E> |
createRepositoryResult(CloseableIteration<? extends E,SailException> sailIter)
Wraps a CloseableIteration coming from a Sail in a RepositoryResult object, applying the required conversions
|
void |
exportStatements(Resource subj,
IRI pred,
Value obj,
boolean includeInferred,
RDFHandler handler,
Resource... contexts)
Exports all statements with a specific subject, predicate and/or object from the repository, optionally from the
specified contexts.
|
RepositoryResult<Resource> |
getContextIDs()
Gets all resources that are used as content identifiers.
|
org.apache.http.client.HttpClient |
getHttpClient()
HttpClient that has been assigned or has been used by this object. |
HttpClientSessionManager |
getHttpClientSessionManager()
HttpClientSessionManager that has been assigned or has been used by this object. |
String |
getNamespace(String prefix)
Gets the namespace that is associated with the specified prefix, if any.
|
RepositoryResult<Namespace> |
getNamespaces()
Gets all declared namespaces as a RepositoryResult of
Namespace objects. |
SailConnection |
getSailConnection()
Returns the underlying SailConnection.
|
RepositoryResult<Statement> |
getStatements(Resource subj,
IRI pred,
Value obj,
boolean includeInferred,
Resource... contexts)
Gets all statements with a specific subject, predicate and/or object from the repository.
|
boolean |
hasStatement(Resource subj,
IRI pred,
Value obj,
boolean includeInferred,
Resource... contexts)
Checks whether the repository contains statements with a specific subject, predicate and/or object, optionally in
the specified contexts.
|
boolean |
isActive()
Indicates if a transaction is currently active on the connection.
|
boolean |
isEmpty()
Returns true if this repository does not contain any (explicit) statements.
|
boolean |
isOpen()
Checks whether this connection is open.
|
SailBooleanQuery |
prepareBooleanQuery(QueryLanguage ql,
String queryString,
String baseURI)
Prepares queries that return true or false.
|
SailGraphQuery |
prepareGraphQuery(QueryLanguage ql,
String queryString,
String baseURI)
Prepares queries that produce RDF graphs.
|
SailQuery |
prepareQuery(QueryLanguage ql,
String queryString,
String baseURI)
Prepares a query for evaluation on this repository (optional operation).
|
SailTupleQuery |
prepareTupleQuery(QueryLanguage ql,
String queryString,
String baseURI)
Prepares a query that produces sets of value tuples.
|
Update |
prepareUpdate(QueryLanguage ql,
String update,
String baseURI)
Prepares an Update operation.
|
void |
removeNamespace(String prefix)
Removes a namespace declaration by removing the association between a prefix and a namespace name.
|
protected void |
removeWithoutCommit(Resource subject,
IRI predicate,
Value object,
Resource... contexts) |
void |
rollback()
Rolls back all updates in the active transaction.
|
void |
setFederatedServiceResolver(FederatedServiceResolver resolver)
Sets the
FederatedServiceResolver to use for this client. |
void |
setHttpClient(org.apache.http.client.HttpClient client)
Assign an
HttpClient that this object should use. |
void |
setHttpClientSessionManager(HttpClientSessionManager client)
Assign an
HttpClientSessionManager that this object should use. |
void |
setNamespace(String prefix,
String name)
Sets the prefix for a namespace.
|
void |
setRepositoryResolver(RepositoryResolver resolver) |
long |
size(Resource... contexts)
Returns the number of (explicit) statements that are in the specified contexts in this repository.
|
String |
toString() |
add, add, add, add, add, add, add, add, addWithoutCommit, conditionalCommit, conditionalRollback, export, getIsolationLevel, getParserConfig, getRepository, getValueFactory, hasStatement, isAutoCommit, prepareBooleanQuery, prepareGraphQuery, prepareQuery, prepareTupleQuery, prepareUpdate, remove, remove, remove, remove, removeWithoutCommit, setAutoCommit, setIsolationLevel, setParserConfig, startLocalTransactionclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetSesameClient, setSesameClientadd, add, getStatements, getStatements, hasStatement, prepareBooleanQuery, prepareGraphQuery, prepareQuery, prepareTupleQuery, prepareUpdate, remove, removeprotected SailRepositoryConnection(SailRepository repository, SailConnection sailConnection)
SailRepository.getConnection().public SailConnection getSailConnection()
public void setFederatedServiceResolver(FederatedServiceResolver resolver)
FederatedServiceResolverClientFederatedServiceResolver to use for this client.setFederatedServiceResolver in interface FederatedServiceResolverClientresolver - The resolver to use.public void setRepositoryResolver(RepositoryResolver resolver)
setRepositoryResolver in interface RepositoryResolverClientpublic HttpClientSessionManager getHttpClientSessionManager()
SessionManagerDependentHttpClientSessionManager that has been assigned or has been used by this object. The life cycle might not
be or might be tied to this object, depending on whether HttpClientSessionManager was passed to or
created by this object respectively.getHttpClientSessionManager in interface SesameClientDependentgetHttpClientSessionManager in interface SessionManagerDependentHttpClientSessionManager instance or nullpublic void setHttpClientSessionManager(HttpClientSessionManager client)
SessionManagerDependentHttpClientSessionManager that this object should use. The life cycle of the given
HttpClientSessionManager is independent of this object. Closing or shutting down this object does not
have any impact on the given client. Callers must ensure that the given client is properly closed elsewhere.setHttpClientSessionManager in interface SesameClientDependentsetHttpClientSessionManager in interface SessionManagerDependentpublic org.apache.http.client.HttpClient getHttpClient()
HttpClientDependentHttpClient that has been assigned or has been used by this object. The life cycle might not be or might
be tied to this object, depending on whether HttpClient was passed to or created by this object
respectively.getHttpClient in interface HttpClientDependentHttpClient instance or nullpublic void setHttpClient(org.apache.http.client.HttpClient client)
HttpClientDependentHttpClient that this object should use. The life cycle of the given HttpClient is
independent of this object. Closing or shutting down this object does not have any impact on the given client.
Callers must ensure that the given client is properly closed elsewhere.setHttpClient in interface HttpClientDependentpublic void begin()
throws RepositoryException
RepositoryConnectionRepositoryConnection.commit() or RepositoryConnection.rollback() to be called to end the transaction.
The transaction will use the currently set isolation level for this connection.begin in interface RepositoryConnectionRepositoryException - If the connection could not start the transaction. One possible reason this may
happen is if a transaction is already active on the current
connection.RepositoryConnection.begin(IsolationLevel),
RepositoryConnection.isActive(),
RepositoryConnection.commit(),
RepositoryConnection.rollback(),
RepositoryConnection.setIsolationLevel(IsolationLevel)public void begin(IsolationLevel level) throws RepositoryException
RepositoryConnectionIsolationLevel, requiring RepositoryConnection.commit() or
RepositoryConnection.rollback() to be called to end the transaction.begin in interface RepositoryConnectionbegin in class AbstractRepositoryConnectionlevel - The IsolationLevel at which this transaction will operate. If set to null the
default isolation level of the underlying store will be used. If the specified isolation level is
not supported by the underlying store, it will attempt to use a supported
compatible level instead.RepositoryException - If the connection could not start the transaction. Possible reasons this may happen
are:
active on the current connection.
IsolationLevel is not supported by the store, and no
compatible level could be found.
RepositoryConnection.begin(),
RepositoryConnection.isActive(),
RepositoryConnection.commit(),
RepositoryConnection.rollback(),
RepositoryConnection.setIsolationLevel(IsolationLevel)public void begin(TransactionSetting... settings)
RepositoryConnectionTransactionSetting, requiring RepositoryConnection.commit() or
RepositoryConnection.rollback() to be called to end the transaction.begin in interface RepositoryConnectionsettings - The TransactionSetting (zero or more) for this transaction. If an isolation level is
provided in the settings this will be used for the transaction. If none is provided then the
default will be used. Behaviour of this method is undefined if more than one isolation level is
provided. Behaviour of this method is undefined if one or more settings is null.RepositoryConnection.begin(),
RepositoryConnection.isActive(),
RepositoryConnection.commit(),
RepositoryConnection.rollback(),
RepositoryConnection.setIsolationLevel(IsolationLevel)public void commit()
throws RepositoryException
RepositoryConnectioncommit in interface RepositoryConnectionUnknownTransactionStateException - if the transaction state can not be determined. This can happen for
instance when communication with a repository fails or times out.RepositoryException - If the connection could not be committed, or if the connection does not
have an active transaction.RepositoryConnection.isActive(),
RepositoryConnection.begin(),
RepositoryConnection.rollback()public void rollback()
throws RepositoryException
RepositoryConnectionrollback in interface RepositoryConnectionUnknownTransactionStateException - if the transaction state can not be determined. This can happen for
instance when communication with a repository fails or times out.RepositoryException - If the transaction could not be rolled back, or if the connection does
not have an active transaction.RepositoryConnection.isActive(),
RepositoryConnection.begin(),
RepositoryConnection.commit()public void close()
throws RepositoryException
RepositoryConnectiontransaction is active on the
connection, all non-committed operations will be lost by actively calling RepositoryConnection.rollback() on any active
transactions.
Implementation note: All implementations must override this method if they have any resources that they need to free.
close in interface AutoCloseableclose in interface RepositoryConnectionclose in class AbstractRepositoryConnectionRepositoryException - If the connection could not be closed.public boolean isOpen()
throws RepositoryException
RepositoryConnectionisOpen in interface RepositoryConnectionisOpen in class AbstractRepositoryConnectionRepositoryExceptionRepositoryConnection.close()public SailQuery prepareQuery(QueryLanguage ql, String queryString, String baseURI) throws MalformedQueryException
RepositoryConnection
If you already know the type of query, using the more specific RepositoryConnection.prepareTupleQuery(java.lang.String),
RepositoryConnection.prepareGraphQuery(java.lang.String) or RepositoryConnection.prepareBooleanQuery(java.lang.String) is likely to be more efficient.
prepareQuery in interface RepositoryConnectionql - The query language in which the query is formulated.queryString - The query string.baseURI - The base URI to resolve any relative URIs that are in the query against, can be null if
the query does not contain any relative URIs.MalformedQueryException - If the supplied query is malformed.public SailTupleQuery prepareTupleQuery(QueryLanguage ql, String queryString, String baseURI) throws MalformedQueryException
RepositoryConnectionprepareTupleQuery in interface RepositoryConnectionql - The query language in which the query is formulated.queryString - The query string.baseURI - The base URI to resolve any relative URIs that are in the query against, can be null if
the query does not contain any relative URIs.TupleQuery ready to be evaluated on this RepositoryConnection.MalformedQueryException - If the supplied query is malformed.public SailGraphQuery prepareGraphQuery(QueryLanguage ql, String queryString, String baseURI) throws MalformedQueryException
RepositoryConnectionprepareGraphQuery in interface RepositoryConnectionql - The query language in which the query is formulated.queryString - The query string.baseURI - The base URI to resolve any relative URIs that are in the query against, can be null if
the query does not contain any relative URIs.GraphQuery ready to be evaluated on this RepositoryConnection.MalformedQueryException - If the supplied query is malformed.public SailBooleanQuery prepareBooleanQuery(QueryLanguage ql, String queryString, String baseURI) throws MalformedQueryException
RepositoryConnectionprepareBooleanQuery in interface RepositoryConnectionql - The query language in which the query is formulated.queryString - The query string.baseURI - The base URI to resolve any relative URIs that are in the query against, can be null if
the query does not contain any relative URIs.BooleanQuery ready to be evaluated on this RepositoryConnection.MalformedQueryException - If the supplied query is malformed.public Update prepareUpdate(QueryLanguage ql, String update, String baseURI) throws RepositoryException, MalformedQueryException
RepositoryConnectionprepareUpdate in interface RepositoryConnectionql - The query language in which the update operation is formulated.update - The update operation string.baseURI - The base URI to resolve any relative URIs that are in the update against, can be null if
the update does not contain any relative URIs.Update ready to be executed on this RepositoryConnection.MalformedQueryException - If the supplied update operation string is malformed.RepositoryExceptionpublic boolean hasStatement(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws RepositoryException
RepositoryConnectionhasStatement in interface RepositoryConnectionhasStatement in class AbstractRepositoryConnectionsubj - 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 considered; if true, inferred statements are
considered if availablecontexts - The context(s) the need to be searched. Note that this parameter is a vararg and as such
is optional. If no contexts are supplied the method operates on the entire repository.RepositoryExceptionpublic RepositoryResult<Resource> getContextIDs() throws RepositoryException
RepositoryConnectionRepositoryResult is closed to free any resources that it keeps hold of.getContextIDs in interface RepositoryConnectionRepositoryExceptionpublic RepositoryResult<Statement> getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws RepositoryException
RepositoryConnectiongetStatements in interface RepositoryConnectionsubj - 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 available. The default is true.contexts - The context(s) to get the data from. Note that this parameter is a vararg and as such is
optional. If no contexts are supplied the method operates on the entire repository.RepositoryResult object, a
lazy Iterator-like object containing Statements and optionally throwing a
RepositoryException when an error when a problem occurs during retrieval.RepositoryExceptionpublic boolean isEmpty()
throws RepositoryException
RepositoryConnectionisEmpty in interface RepositoryConnectionisEmpty in class AbstractRepositoryConnectionRepositoryException - If the repository could not be checked to be empty.public void exportStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, RDFHandler handler, Resource... contexts) throws RepositoryException, RDFHandlerException
RepositoryConnectionexportStatements in interface RepositoryConnectionsubj - The subject, or null if the subject doesn't matter.pred - The predicate, or null if the predicate doesn't matter.obj - The object, or null if the object doesn't matter.includeInferred - if false, no inferred statements are returned; if true, inferred statements are returned
if availablehandler - The handler that will handle the RDF data.contexts - The context(s) to get the data from. Note that this parameter is a vararg and as such is
optional. If no contexts are supplied the method operates on the entire repository.RDFHandlerException - If the handler encounters an unrecoverable error.RepositoryExceptionpublic long size(Resource... contexts) throws RepositoryException
RepositoryConnectionsize in interface RepositoryConnectioncontexts - The context(s) to get the data from. Note that this parameter is a vararg and as such is
optional. If no contexts are supplied the method operates on the entire repository.RepositoryExceptionprotected void addWithoutCommit(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
addWithoutCommit in class AbstractRepositoryConnectionRepositoryExceptionprotected void removeWithoutCommit(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
removeWithoutCommit in class AbstractRepositoryConnectionRepositoryExceptionpublic void clear(Resource... contexts) throws RepositoryException
RepositoryConnectionclear in interface RepositoryConnectionclear in class AbstractRepositoryConnectioncontexts - The context(s) to remove the data from. Note that this parameter is a vararg and as such is
optional. If no contexts are supplied the method operates on the entire repository.RepositoryException - If the statements could not be removed from the repository, for example because the
repository is not writable.public void setNamespace(String prefix, String name) throws RepositoryException
RepositoryConnectionsetNamespace in interface RepositoryConnectionprefix - The new prefix, or an empty string in case of the default namespace.name - The namespace name that the prefix maps to.RepositoryException - If the namespace could not be set in the repository, for example because the
repository is not writable.public void removeNamespace(String prefix) throws RepositoryException
RepositoryConnectionremoveNamespace in interface RepositoryConnectionprefix - The namespace prefix, or an empty string in case of the default namespace.RepositoryException - If the namespace prefix could not be removed.public void clearNamespaces()
throws RepositoryException
RepositoryConnectionclearNamespaces in interface RepositoryConnectionRepositoryException - If the namespace declarations could not be removed.public RepositoryResult<Namespace> getNamespaces() throws RepositoryException
RepositoryConnectionNamespace objects. Each Namespace object consists
of a prefix and a namespace name.getNamespaces in interface RepositoryConnectionRepositoryException - If the namespaces could not be read from the repository.public String getNamespace(String prefix) throws RepositoryException
RepositoryConnectiongetNamespace in interface RepositoryConnectionprefix - A namespace prefix, or an empty string in case of the default namespace.RepositoryException - If the namespace could not be read from the repository.protected <E> RepositoryResult<E> createRepositoryResult(CloseableIteration<? extends E,SailException> sailIter)
public boolean isActive()
throws UnknownTransactionStateException
RepositoryConnectionRepositoryConnection.begin() has
been called, and becomes inactive after RepositoryConnection.commit() or RepositoryConnection.rollback() has been called.isActive in interface RepositoryConnectiontrue iff a transaction is active, false iff no transaction is active.UnknownTransactionStateException - if the transaction state can not be determined. This can happen for
instance when communication with a repository fails or times out.Copyright © 2015-2020 Eclipse Foundation. All Rights Reserved.