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, waitadd, add, add, add, add, add, add, add, begin, begin, clearNamespaces, commit, exportStatements, getContextIDs, getNamespace, getNamespaces, getStatements, getStatements, getStatements, hasStatement, isActive, prepare, prepareBooleanQuery, prepareBooleanQuery, prepareGraphQuery, prepareGraphQuery, prepareQuery, prepareQuery, prepareTupleQuery, prepareTupleQuery, prepareUpdate, prepareUpdate, remove, remove, removeNamespace, rollback, setNamespace, sizeprotected AbstractRepositoryConnection(Repository repository)
public void setParserConfig(ParserConfig parserConfig)
RepositoryConnectionsetParserConfig in interface RepositoryConnectionparserConfig - a Rio RDF Parser configuration.public ParserConfig getParserConfig()
RepositoryConnectiongetParserConfig in interface RepositoryConnectionpublic Repository getRepository()
RepositoryConnectiongetRepository in interface RepositoryConnectionpublic ValueFactory getValueFactory()
RepositoryConnectiongetValueFactory in interface RepositoryConnectionpublic void begin(IsolationLevel level) throws RepositoryException
RepositoryConnectionIsolationLevel, requiring RepositoryConnection.commit() or
RepositoryConnection.rollback() to be called to end the transaction.begin in interface RepositoryConnectionlevel - 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
RepositoryConnectionRepositoryConnection.begin() will result in an exception.setIsolationLevel in interface RepositoryConnectionlevel - the transaction isolation level to set.IllegalStateException - if the method is called while a transaction is already active.public IsolationLevel getIsolationLevel()
RepositoryConnectiontransaction isolation level of the connection.getIsolationLevel in interface RepositoryConnectionpublic boolean isOpen()
throws RepositoryException
RepositoryConnectionisOpen in interface RepositoryConnectionRepositoryExceptionRepositoryConnection.close()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 RepositoryConnectionRepositoryException - If the connection could not be closed.public Query prepareQuery(QueryLanguage ql, String query) throws MalformedQueryException, RepositoryException
RepositoryConnectionRepositoryConnection.prepareQuery(QueryLanguage, String, String) instead.
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.query - The query string.MalformedQueryException - If the supplied query is malformed.RepositoryExceptionpublic TupleQuery prepareTupleQuery(QueryLanguage ql, String query) throws MalformedQueryException, RepositoryException
RepositoryConnectionRepositoryConnection.prepareTupleQuery(QueryLanguage, String, String)
instead.prepareTupleQuery in interface RepositoryConnectionql - 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.RepositoryExceptionpublic GraphQuery prepareGraphQuery(QueryLanguage ql, String query) throws MalformedQueryException, RepositoryException
RepositoryConnectionRepositoryConnection.prepareGraphQuery(QueryLanguage, String, String) instead.prepareGraphQuery in interface RepositoryConnectionql - 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.RepositoryExceptionpublic BooleanQuery prepareBooleanQuery(QueryLanguage ql, String query) throws MalformedQueryException, RepositoryException
RepositoryConnectionRepositoryConnection.prepareBooleanQuery(QueryLanguage, String, String) instead.prepareBooleanQuery in interface RepositoryConnectionql - 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.RepositoryExceptionpublic Update prepareUpdate(QueryLanguage ql, String update) throws MalformedQueryException, RepositoryException
RepositoryConnectionRepositoryConnection.prepareUpdate(QueryLanguage, String, String) instead.prepareUpdate in interface RepositoryConnectionql - 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.RepositoryExceptionpublic boolean hasStatement(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws RepositoryException
RepositoryConnectionhasStatement 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 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 boolean hasStatement(Statement st, boolean includeInferred, Resource... contexts) throws RepositoryException
RepositoryConnectionhasStatement in interface RepositoryConnectionst - 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.RepositoryExceptionpublic boolean isEmpty()
throws RepositoryException
RepositoryConnectionisEmpty in interface RepositoryConnectionRepositoryException - If the repository could not be checked to be empty.public void export(RDFHandler handler, Resource... contexts) throws RepositoryException, RDFHandlerException
RepositoryConnectionexport in interface RepositoryConnectionhandler - 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.RepositoryConnectionRepositoryConnection.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 RepositoryConnectionRepositoryException - 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.RepositoryConnectionRepositoryConnection.begin() has not been called or;
RepositoryConnection.commit() or RepositoryConnection.rollback() have been called to finish the transaction.
isAutoCommit in interface RepositoryConnectionRepositoryException - If a repository access error occurs.public void add(File file, String baseURI, RDFFormat dataFormat, Resource... contexts) throws IOException, RDFParseException, RepositoryException
RepositoryConnectionadd in interface RepositoryConnectionfile - 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.
Note that if the data contains an embedded base URI, that embedded base URI will overrule the value supplied here (see RFC 3986 section 5.1 for details).
dataFormat - The serialization format of the data. If set to null, the format will be automatically
determined by examining the file name extension of the supplied File.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
RepositoryConnectionadd in interface RepositoryConnectionurl - 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.
Note that if the data contains an embedded base URI, that embedded base URI will overrule the value supplied here (see RFC 3986 section 5.1 for details).
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
RepositoryConnectionadd in interface RepositoryConnectionin - An InputStream from which RDF data can be read.baseURI - The base URI to resolve any relative URIs that are in the data against. May be
null.
Note that if the data contains an embedded base URI, that embedded base URI will overrule the value supplied here (see RFC 3986 section 5.1 for details).
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.RepositoryExceptionprotected final void conditionalCommit(boolean condition)
throws RepositoryException
RepositoryConnection.commit() if supplied boolean condition is true.condition - a boolean condition.RepositoryExceptionprotected final void conditionalRollback(boolean condition)
throws RepositoryException
RepositoryConnection.rollback() if supplied boolean condition is true.condition - a boolean condition.RepositoryExceptionpublic void add(Reader reader, String baseURI, RDFFormat dataFormat, Resource... contexts) throws IOException, RDFParseException, RepositoryException
RepositoryConnectionadd in interface RepositoryConnectionreader - A Reader from which RDF data can be read.baseURI - The base URI to resolve any relative URIs that are in the data against. May be
null.
Note that if the data contains an embedded base URI, that embedded base URI will overrule the value supplied here (see RFC 3986 section 5.1 for details).
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
RepositoryConnectionadd in interface RepositoryConnectionstatements - 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
RepositoryConnectionadd in interface RepositoryConnectionstatements - 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 Exceptionpublic void add(Statement st, Resource... contexts) throws RepositoryException
RepositoryConnectionadd in interface RepositoryConnectionst - 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
RepositoryConnectionadd in interface RepositoryConnectionsubject - 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
RepositoryConnectionremove in interface RepositoryConnectionstatements - 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
RepositoryConnectionremove in interface RepositoryConnectionstatements - 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 Exceptionpublic void remove(Statement st, Resource... contexts) throws RepositoryException
RepositoryConnectionremove in interface RepositoryConnectionst - 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
RepositoryConnectionremove in interface RepositoryConnectionsubject - 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
RepositoryConnectionclear in interface RepositoryConnectioncontexts - 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
RepositoryExceptionprotected abstract void addWithoutCommit(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
RepositoryExceptionprotected void removeWithoutCommit(Statement st, Resource... contexts) throws RepositoryException
RepositoryExceptionprotected abstract void removeWithoutCommit(Resource subject, IRI predicate, Value object, Resource... contexts) throws RepositoryException
RepositoryExceptionCopyright © 2015-2021 Eclipse Foundation. All Rights Reserved.