public class SailRepositoryConnection extends AbstractRepositoryConnection implements FederatedServiceResolverClient, RepositoryResolverClient, HttpClientDependent, SesameClientDependent
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 |
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. |
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.
|
SesameClient |
getSesameClient()
SesameClient that has been assigned or has been used by this
object. |
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 |
setNamespace(String prefix,
String name)
Sets the prefix for a namespace.
|
void |
setRepositoryResolver(RepositoryResolver resolver) |
void |
setSesameClient(SesameClient client)
Assign an
SesameClient that this object should use. |
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, startLocalTransaction
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
add, getStatements, getStatements, hasStatement, prepareBooleanQuery, prepareGraphQuery, prepareQuery, prepareTupleQuery, prepareUpdate, remove
protected SailRepositoryConnection(SailRepository repository, SailConnection sailConnection)
SailRepository.getConnection()
.public SailConnection getSailConnection()
public void setFederatedServiceResolver(FederatedServiceResolver resolver)
FederatedServiceResolverClient
FederatedServiceResolver
to use for this client.setFederatedServiceResolver
in interface FederatedServiceResolverClient
resolver
- The resolver to use.public void setRepositoryResolver(RepositoryResolver resolver)
setRepositoryResolver
in interface RepositoryResolverClient
public SesameClient getSesameClient()
SesameClientDependent
SesameClient
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 SesameClient
was passed to or created by this
object respectively.getSesameClient
in interface SesameClientDependent
SesameClient
instance or nullpublic void setSesameClient(SesameClient client)
SesameClientDependent
SesameClient
that this object should use. The life cycle
of the given SesameClient
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.setSesameClient
in interface SesameClientDependent
public org.apache.http.client.HttpClient getHttpClient()
HttpClientDependent
HttpClient
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 HttpClientDependent
HttpClient
instance or nullpublic void setHttpClient(org.apache.http.client.HttpClient client)
HttpClientDependent
HttpClient
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 HttpClientDependent
public void begin() throws RepositoryException
RepositoryConnection
RepositoryConnection.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 RepositoryConnection
RepositoryException
- 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
RepositoryConnection
IsolationLevel
,
requiring RepositoryConnection.commit()
or RepositoryConnection.rollback()
to be called to end the
transaction.begin
in interface RepositoryConnection
begin
in class AbstractRepositoryConnection
level
- 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()
,
#setIsolationLevel()
public void commit() throws RepositoryException
RepositoryConnection
commit
in interface RepositoryConnection
UnknownTransactionStateException
- 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
RepositoryConnection
rollback
in interface RepositoryConnection
UnknownTransactionStateException
- 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
RepositoryConnection
transaction
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 AutoCloseable
close
in interface RepositoryConnection
close
in class AbstractRepositoryConnection
RepositoryException
- If the connection could not be closed.public boolean isOpen() throws RepositoryException
RepositoryConnection
isOpen
in interface RepositoryConnection
isOpen
in class AbstractRepositoryConnection
RepositoryException
RepositoryConnection.close()
public SailQuery prepareQuery(QueryLanguage ql, String queryString, String baseURI) throws MalformedQueryException
RepositoryConnection
prepareQuery
in interface RepositoryConnection
ql
- 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
RepositoryConnection
prepareTupleQuery
in interface RepositoryConnection
ql
- 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
RepositoryConnection
prepareGraphQuery
in interface RepositoryConnection
ql
- 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
RepositoryConnection
prepareBooleanQuery
in interface RepositoryConnection
ql
- 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
RepositoryConnection
prepareUpdate
in interface RepositoryConnection
ql
- 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.RepositoryException
public boolean hasStatement(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws RepositoryException
RepositoryConnection
hasStatement
in interface RepositoryConnection
hasStatement
in class AbstractRepositoryConnection
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 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.RepositoryException
public RepositoryResult<Resource> getContextIDs() throws RepositoryException
RepositoryConnection
RepositoryResult
is closed to free any
resources that it keeps hold of.getContextIDs
in interface RepositoryConnection
RepositoryException
public RepositoryResult<Statement> getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws RepositoryException
RepositoryConnection
getStatements
in interface RepositoryConnection
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 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 Statement
s and optionally throwing a
RepositoryException
when an error when a problem occurs
during retrieval.RepositoryException
public boolean isEmpty() throws RepositoryException
RepositoryConnection
isEmpty
in interface RepositoryConnection
isEmpty
in class AbstractRepositoryConnection
RepositoryException
- 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
RepositoryConnection
exportStatements
in interface RepositoryConnection
subj
- 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.RepositoryException
public long size(Resource... contexts) throws RepositoryException
RepositoryConnection
size
in interface RepositoryConnection
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.RepositoryException
protected void addWithoutCommit(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
addWithoutCommit
in class AbstractRepositoryConnection
RepositoryException
protected void removeWithoutCommit(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
removeWithoutCommit
in class AbstractRepositoryConnection
RepositoryException
public void clear(Resource... contexts) throws RepositoryException
RepositoryConnection
clear
in interface RepositoryConnection
clear
in class AbstractRepositoryConnection
contexts
- 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
RepositoryConnection
setNamespace
in interface RepositoryConnection
prefix
- 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
RepositoryConnection
removeNamespace
in interface RepositoryConnection
prefix
- 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
RepositoryConnection
clearNamespaces
in interface RepositoryConnection
RepositoryException
- If the namespace declarations could not be removed.public RepositoryResult<Namespace> getNamespaces() throws RepositoryException
RepositoryConnection
Namespace
objects. Each Namespace object consists of a prefix and a namespace name.getNamespaces
in interface RepositoryConnection
RepositoryException
- If the namespaces could not be read from the repository.public String getNamespace(String prefix) throws RepositoryException
RepositoryConnection
getNamespace
in interface RepositoryConnection
prefix
- 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
RepositoryConnection
RepositoryConnection.begin()
has been called, and becomes
inactive after RepositoryConnection.commit()
or RepositoryConnection.rollback()
has been called.isActive
in interface RepositoryConnection
true
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 © 2001-2016 Aduna. All Rights Reserved.