public abstract class AbstractRepositoryConnection extends Object implements RepositoryConnection
RepositoryConnection
interface by transforming
parameters and mapping the methods to the basic (abstractly declared) methods.
Open connections are automatically closed when being garbage collected. A warning message will be logged when the system property org.eclipse.rdf4j.repository.debug has been set to a non-null value.
Modifier and Type | Field and Description |
---|---|
protected org.slf4j.Logger |
logger |
Modifier | Constructor and Description |
---|---|
protected |
AbstractRepositoryConnection(Repository repository) |
Modifier and Type | Method and Description |
---|---|
void |
add(File file,
String baseURI,
RDFFormat dataFormat,
Resource... contexts)
Adds RDF data from the specified file to a specific contexts in the repository.
|
void |
add(InputStream in,
String baseURI,
RDFFormat dataFormat,
Resource... contexts)
Adds RDF data from an InputStream to the repository, optionally to one or more named contexts.
|
void |
add(Iterable<? extends Statement> statements,
Resource... contexts)
Adds the supplied statements to this repository, optionally to one or more named contexts.
|
<E extends Exception> |
add(Iteration<? extends Statement,E> statements,
Resource... contexts)
Adds the supplied statements to this repository, optionally to one or more named contexts.
|
void |
add(Reader reader,
String baseURI,
RDFFormat dataFormat,
Resource... contexts)
Adds RDF data from a Reader to the repository, optionally to one or more named contexts.
|
void |
add(Resource subject,
IRI predicate,
Value object,
Resource... contexts)
Adds a statement with the specified subject, predicate and object to this repository, optionally to one or more
named contexts.
|
void |
add(Statement st,
Resource... contexts)
Adds the supplied statement to this repository, optionally to one or more named contexts.
|
void |
add(URL url,
String baseURI,
RDFFormat dataFormat,
Resource... contexts)
Adds the RDF data that can be found at the specified URL to the repository, optionally to one or more named
contexts.
|
protected abstract void |
addWithoutCommit(Resource subject,
IRI predicate,
Value object,
Resource... contexts) |
protected void |
addWithoutCommit(Statement st,
Resource... contexts) |
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 |
close()
Closes the connection, freeing resources.
|
protected void |
conditionalCommit(boolean condition)
Invokes
RepositoryConnection.commit() if supplied boolean condition is true . |
protected void |
conditionalRollback(boolean condition)
Invokes
RepositoryConnection.rollback() if supplied boolean condition is true . |
void |
export(RDFHandler handler,
Resource... contexts)
Exports all explicit statements in the specified contexts to the supplied RDFHandler.
|
IsolationLevel |
getIsolationLevel()
Retrieves the current
transaction isolation level of the connection. |
ParserConfig |
getParserConfig()
Returns the parser configuration this connection uses for Rio-based operations.
|
Repository |
getRepository()
Returns the Repository object to which this connection belongs.
|
ValueFactory |
getValueFactory()
Gets a ValueFactory for this RepositoryConnection.
|
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 |
hasStatement(Statement st,
boolean includeInferred,
Resource... contexts)
Checks whether the repository contains the specified statement, optionally in the specified contexts.
|
boolean |
isAutoCommit()
Deprecated.
since 2.0. Use
RepositoryConnection.isActive() instead. |
boolean |
isEmpty()
Returns true if this repository does not contain any (explicit) statements.
|
boolean |
isOpen()
Checks whether this connection is open.
|
BooleanQuery |
prepareBooleanQuery(QueryLanguage ql,
String query)
Prepares queries that return true or false.
|
GraphQuery |
prepareGraphQuery(QueryLanguage ql,
String query)
Prepares queries that produce RDF graphs.
|
Query |
prepareQuery(QueryLanguage ql,
String query)
Prepares a query for evaluation on this repository (optional operation).
|
TupleQuery |
prepareTupleQuery(QueryLanguage ql,
String query)
Prepares a query that produces sets of value tuples.
|
Update |
prepareUpdate(QueryLanguage ql,
String update)
Prepares an Update operation.
|
void |
remove(Iterable<? extends Statement> statements,
Resource... contexts)
Removes the supplied statements from the specified contexts in this repository.
|
<E extends Exception> |
remove(Iteration<? extends Statement,E> statements,
Resource... contexts)
Removes the supplied statements from a specific context in this repository, ignoring any context information
carried by the statements themselves.
|
void |
remove(Resource subject,
IRI predicate,
Value object,
Resource... contexts)
Removes the statement(s) with the specified subject, predicate and object from the repository, optionally
restricted to the specified contexts.
|
void |
remove(Statement st,
Resource... contexts)
Removes the supplied statement from the specified contexts in the repository.
|
protected abstract void |
removeWithoutCommit(Resource subject,
IRI predicate,
Value object,
Resource... contexts) |
protected void |
removeWithoutCommit(Statement st,
Resource... contexts) |
void |
setAutoCommit(boolean autoCommit)
Deprecated.
since 2.0. Use
RepositoryConnection.begin() instead. |
void |
setIsolationLevel(IsolationLevel level)
Sets the transaction isolation level for the next transaction(s) on this connection.
|
void |
setParserConfig(ParserConfig parserConfig)
Set the parser configuration this connection should use for RDFParser-based operations.
|
protected boolean |
startLocalTransaction()
Starts a new transaction if one is not already active.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
add, add, begin, clearNamespaces, commit, exportStatements, getContextIDs, getNamespace, getNamespaces, getStatements, getStatements, getStatements, hasStatement, isActive, prepareBooleanQuery, prepareBooleanQuery, prepareGraphQuery, prepareGraphQuery, prepareQuery, prepareQuery, prepareTupleQuery, prepareTupleQuery, prepareUpdate, prepareUpdate, remove, remove, removeNamespace, rollback, setNamespace, size
protected AbstractRepositoryConnection(Repository repository)
public void setParserConfig(ParserConfig parserConfig)
RepositoryConnection
setParserConfig
in interface RepositoryConnection
parserConfig
- a Rio RDF Parser configuration.public ParserConfig getParserConfig()
RepositoryConnection
getParserConfig
in interface RepositoryConnection
public Repository getRepository()
RepositoryConnection
getRepository
in interface RepositoryConnection
public ValueFactory getValueFactory()
RepositoryConnection
getValueFactory
in interface RepositoryConnection
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
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()
,
RepositoryConnection.setIsolationLevel(IsolationLevel)
public void setIsolationLevel(IsolationLevel level) throws IllegalStateException
RepositoryConnection
RepositoryConnection.begin()
will result in an exception.setIsolationLevel
in interface RepositoryConnection
level
- the transaction isolation level to set.IllegalStateException
- if the method is called while a transaction is already active.public IsolationLevel getIsolationLevel()
RepositoryConnection
transaction isolation level
of the connection.getIsolationLevel
in interface RepositoryConnection
public boolean isOpen() throws RepositoryException
RepositoryConnection
isOpen
in interface RepositoryConnection
RepositoryException
RepositoryConnection.close()
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
RepositoryException
- If the connection could not be closed.public Query prepareQuery(QueryLanguage ql, String query) throws MalformedQueryException, RepositoryException
RepositoryConnection
RepositoryConnection.prepareQuery(QueryLanguage, String, String)
instead.prepareQuery
in interface RepositoryConnection
ql
- The query language
in which the query is formulated.query
- The query string.MalformedQueryException
- If the supplied query is malformed.RepositoryException
public TupleQuery prepareTupleQuery(QueryLanguage ql, String query) throws MalformedQueryException, RepositoryException
RepositoryConnection
RepositoryConnection.prepareTupleQuery(QueryLanguage, String, String)
instead.prepareTupleQuery
in interface RepositoryConnection
ql
- The query language
in which the query is formulated.query
- The query string.TupleQuery
ready to be evaluated on this RepositoryConnection
.MalformedQueryException
- If the supplied query is malformed.RepositoryException
public GraphQuery prepareGraphQuery(QueryLanguage ql, String query) throws MalformedQueryException, RepositoryException
RepositoryConnection
RepositoryConnection.prepareGraphQuery(QueryLanguage, String, String)
instead.prepareGraphQuery
in interface RepositoryConnection
ql
- The query language
in which the query is formulated.query
- The query string.GraphQuery
ready to be evaluated on this RepositoryConnection
.MalformedQueryException
- If the supplied query is malformed.RepositoryException
public BooleanQuery prepareBooleanQuery(QueryLanguage ql, String query) throws MalformedQueryException, RepositoryException
RepositoryConnection
RepositoryConnection.prepareBooleanQuery(QueryLanguage, String, String)
instead.prepareBooleanQuery
in interface RepositoryConnection
ql
- The query language
in which the query is formulated.query
- The query string.BooleanQuery
ready to be evaluated on this RepositoryConnection
.MalformedQueryException
- If the supplied query is malformed.RepositoryException
public Update prepareUpdate(QueryLanguage ql, String update) throws MalformedQueryException, RepositoryException
RepositoryConnection
RepositoryConnection.prepareUpdate(QueryLanguage, String, String)
instead.prepareUpdate
in interface RepositoryConnection
ql
- The query language
in which the update operation is formulated.update
- The update operation string.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
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 boolean hasStatement(Statement st, boolean includeInferred, Resource... contexts) throws RepositoryException
RepositoryConnection
hasStatement
in interface RepositoryConnection
st
- The statement to look for. Context information in the statement is ignored.includeInferred
- if false, no inferred statements are considered; if true, inferred statements are
considered 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 supplied the method operates on the entire repository.RepositoryException
public boolean isEmpty() throws RepositoryException
RepositoryConnection
isEmpty
in interface RepositoryConnection
RepositoryException
- If the repository could not be checked to be empty.public void export(RDFHandler handler, Resource... contexts) throws RepositoryException, RDFHandlerException
RepositoryConnection
export
in interface RepositoryConnection
handler
- 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
@Deprecated public void setAutoCommit(boolean autoCommit) throws RepositoryException
RepositoryConnection.begin()
instead.RepositoryConnection
RepositoryConnection.commit()
or RepositoryConnection.rollback()
. By default, new connections are in
auto-commit mode.
NOTE: If this connection is switched to auto-commit mode during a transaction, the transaction is committed.
setAutoCommit
in interface RepositoryConnection
RepositoryException
- In case the mode switch failed, for example because a currently active transaction
failed to commit.RepositoryConnection.commit()
@Deprecated public boolean isAutoCommit() throws RepositoryException
RepositoryConnection.isActive()
instead.RepositoryConnection
RepositoryConnection.begin()
has not been called or;
RepositoryConnection.commit()
or RepositoryConnection.rollback()
have been called to finish the transaction.
isAutoCommit
in interface RepositoryConnection
RepositoryException
- If a repository access error occurs.public void add(File file, String baseURI, RDFFormat dataFormat, Resource... contexts) throws IOException, RDFParseException, RepositoryException
RepositoryConnection
add
in interface RepositoryConnection
file
- A file containing RDF data.baseURI
- The base URI to resolve any relative URIs that are in the data against. This defaults to the
value of file.toURI()
if the value is set to null.dataFormat
- The serialization format of the data.contexts
- The contexts to add the data to. Note that this parameter is a vararg and as such is optional.
If no contexts are specified, the data is added to any context specified in the actual data
file, or if the data contains no context, it is added without context. If one or more contexts
are specified the data is added to these contexts, ignoring any context information in the data
itself.IOException
- If an I/O error occurred while reading from the file.RDFParseException
- If an error was found while parsing the RDF data.RepositoryException
- If the data could not be added to the repository, for example because the
repository is not writable.public void add(URL url, String baseURI, RDFFormat dataFormat, Resource... contexts) throws IOException, RDFParseException, RepositoryException
RepositoryConnection
add
in interface RepositoryConnection
url
- The URL of the RDF data.baseURI
- The base URI to resolve any relative URIs that are in the data against. This defaults to the
value of url.toExternalForm()
if the value is set to
null.dataFormat
- The serialization format of the data. If set to null, the format will be automatically
determined by examining the content type in the HTTP response header, and failing that, the
file name extension of the supplied URL.contexts
- The contexts to add the data to. If one or more contexts are specified the data is added to
these contexts, ignoring any context information in the data itself.IOException
- If an I/O error occurred while reading from the URL.RDFParseException
- If an error was found while parsing the RDF data.RepositoryException
- If the data could not be added to the repository, for example because the
repository is not writable.public void add(InputStream in, String baseURI, RDFFormat dataFormat, Resource... contexts) throws IOException, RDFParseException, RepositoryException
RepositoryConnection
add
in interface RepositoryConnection
in
- An InputStream from which RDF data can be read.baseURI
- The base URI to resolve any relative URIs that are in the data against.dataFormat
- The serialization format of the data.contexts
- The contexts to add the data to. If one or more contexts are supplied the method ignores
contextual information in the actual data. If no contexts are supplied the contextual
information in the input stream is used, if no context information is available the data is
added without any context.IOException
- If an I/O error occurred while reading from the input stream.RDFParseException
- If an error was found while parsing the RDF data.RepositoryException
- If the data could not be added to the repository, for example because the
repository is not writable.protected final boolean startLocalTransaction() throws RepositoryException
true
if a new transaction was started, false
if a transaction was already
active.RepositoryException
protected final void conditionalCommit(boolean condition) throws RepositoryException
RepositoryConnection.commit()
if supplied boolean condition is true
.condition
- a boolean condition.RepositoryException
protected final void conditionalRollback(boolean condition) throws RepositoryException
RepositoryConnection.rollback()
if supplied boolean condition is true
.condition
- a boolean condition.RepositoryException
public void add(Reader reader, String baseURI, RDFFormat dataFormat, Resource... contexts) throws IOException, RDFParseException, RepositoryException
RepositoryConnection
add
in interface RepositoryConnection
reader
- A Reader from which RDF data can be read.baseURI
- The base URI to resolve any relative URIs that are in the data against.dataFormat
- The serialization format of the data.contexts
- The contexts to add the data to. If one or more contexts are specified the data is added to
these contexts, ignoring any context information in the data itself.IOException
- If an I/O error occurred while reading from the reader.RDFParseException
- If an error was found while parsing the RDF data.RepositoryException
- If the data could not be added to the repository, for example because the
repository is not writable.public void add(Iterable<? extends Statement> statements, Resource... contexts) throws RepositoryException
RepositoryConnection
add
in interface RepositoryConnection
statements
- The statements that should be added.contexts
- The contexts to add the statements to. Note that this parameter is a vararg and as such is
optional. If no contexts are specified, each statement is added to any context specified in the
statement, or if the statement contains no context, it is added without context. If one or more
contexts are specified each statement is added to these contexts, ignoring any context
information in the statement itself. ignored.RepositoryException
- If the statements could not be added to the repository, for example because the
repository is not writable.public <E extends Exception> void add(Iteration<? extends Statement,E> statements, Resource... contexts) throws RepositoryException, E extends Exception
RepositoryConnection
add
in interface RepositoryConnection
statements
- The statements to add. In case the iteration is a
CloseableIteration
, it will be closed before this
method returns.contexts
- The contexts to add the statements to. Note that this parameter is a vararg and as such is
optional. If no contexts are specified, each statement is added to any context specified in the
statement, or if the statement contains no context, it is added without context. If one or more
contexts are specified each statement is added to these contexts, ignoring any context
information in the statement itself. ignored.RepositoryException
- If the statements could not be added to the repository, for example because the
repository is not writable.E extends Exception
public void add(Statement st, Resource... contexts) throws RepositoryException
RepositoryConnection
add
in interface RepositoryConnection
st
- The statement to add.contexts
- The contexts to add the statements to. Note that this parameter is a vararg and as such is
optional. If no contexts are specified, the statement is added to any context specified in each
statement, or if the statement contains no context, it is added without context. If one or more
contexts are specified the statement is added to these contexts, ignoring any context information
in the statement itself.RepositoryException
- If the statement could not be added to the repository, for example because the
repository is not writable.public void add(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
RepositoryConnection
add
in interface RepositoryConnection
subject
- The statement's subject.predicate
- The statement's predicate.object
- The statement's object.contexts
- The contexts to add the data to. Note that this parameter is a vararg and as such is optional.
If no contexts are specified, the data is added to any context specified in the actual data
file, or if the data contains no context, it is added without context. If one or more contexts
are specified the data is added to these contexts, ignoring any context information in the data
itself.RepositoryException
- If the data could not be added to the repository, for example because the repository
is not writable.public void remove(Iterable<? extends Statement> statements, Resource... contexts) throws RepositoryException
RepositoryConnection
remove
in interface RepositoryConnection
statements
- The statements that should be added.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 contexts associated with the
statement itself, and if no context is associated with the statement, on the entire repository.RepositoryException
- If the statements could not be added to the repository, for example because the
repository is not writable.public <E extends Exception> void remove(Iteration<? extends Statement,E> statements, Resource... contexts) throws RepositoryException, E extends Exception
RepositoryConnection
remove
in interface RepositoryConnection
statements
- The statements to remove. In case the iteration is a
CloseableIteration
, it will be closed before this
method returns.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 contexts associated with the
statement itself, and if no context is associated with the statement, on the entire repository.RepositoryException
- If the statements could not be removed from the repository, for example because the
repository is not writable.E extends Exception
public void remove(Statement st, Resource... contexts) throws RepositoryException
RepositoryConnection
remove
in interface RepositoryConnection
st
- The statement to remove.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 contexts associated with the
statement itself, and if no context is associated with the statement, on the entire repository.RepositoryException
- If the statement could not be removed from the repository, for example because the
repository is not writable.public void remove(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
RepositoryConnection
remove
in interface RepositoryConnection
subject
- The statement's subject, or null for a wildcard.predicate
- The statement's predicate, or null for a wildcard.object
- The statement's object, or null for a wildcard.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 statement(s) could not be removed from the repository, for example because the
repository is not writable.public void clear(Resource... contexts) throws RepositoryException
RepositoryConnection
clear
in interface RepositoryConnection
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.protected void addWithoutCommit(Statement st, Resource... contexts) throws RepositoryException
RepositoryException
protected abstract void addWithoutCommit(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
RepositoryException
protected void removeWithoutCommit(Statement st, Resource... contexts) throws RepositoryException
RepositoryException
protected abstract void removeWithoutCommit(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
RepositoryException
Copyright © 2015-2020 Eclipse Foundation. All Rights Reserved.