org.openrdf.sail.helpers
Class SailConnectionBase

java.lang.Object
  extended by org.openrdf.sail.helpers.SailConnectionBase
All Implemented Interfaces:
SailConnection
Direct Known Subclasses:
MemoryStoreConnection, NativeStoreConnection

public abstract class SailConnectionBase
extends Object
implements SailConnection

Abstract Class offering base functionality for SailConnection implementations.

Author:
Arjohn Kampman, jeen

Field Summary
protected  Logger logger
           
 
Constructor Summary
SailConnectionBase(SailBase sailBase)
           
 
Method Summary
 void addConnectionListener(SailConnectionListener listener)
          Registers a SailConnection listener with this SailConnection.
 void addStatement(Resource subj, URI pred, Value obj, Resource... contexts)
          Adds a statement to each context in the specified contexts.
protected abstract  void addStatementInternal(Resource subj, URI pred, Value obj, Resource... contexts)
           
protected  void autoStartTransaction()
           
 void clear(Resource... contexts)
          Removes all statements from the specified/all contexts.
protected abstract  void clearInternal(Resource... contexts)
           
 void clearNamespaces()
          Removes all namespace declarations from the repository.
protected abstract  void clearNamespacesInternal()
           
 void close()
          Closes the connection.
protected abstract  void closeInternal()
           
 void commit()
          Commits any updates that have been performed since the last time SailConnection.commit() or SailConnection.rollback() was called.
protected abstract  void commitInternal()
           
 CloseableIteration<? extends BindingSet,QueryEvaluationException> evaluate(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred)
          Evaluates the supplied TupleExpr on the data contained in this Sail object, using the (optional) dataset and supplied bindings as input parameters.
protected abstract  CloseableIteration<? extends BindingSet,QueryEvaluationException> evaluateInternal(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred)
           
 CloseableIteration<? extends Resource,SailException> getContextIDs()
          Returns the set of all unique context identifiers that are used to store statements.
protected abstract  CloseableIteration<? extends Resource,SailException> getContextIDsInternal()
           
protected  Lock getExclusiveConnectionLock()
           
 String getNamespace(String prefix)
          Gets the namespace that is mapped to the specified prefix.
protected abstract  String getNamespaceInternal(String prefix)
           
 CloseableIteration<? extends Namespace,SailException> getNamespaces()
          Gets the namespaces relevant to the data contained in this Sail object.
protected abstract  CloseableIteration<? extends Namespace,SailException> getNamespacesInternal()
           
protected  Lock getSharedConnectionLock()
           
 CloseableIteration<? extends Statement,SailException> getStatements(Resource subj, URI pred, Value obj, boolean includeInferred, Resource... contexts)
          Gets all statements from the specified contexts that have a specific subject, predicate and/or object.
protected abstract  CloseableIteration<? extends Statement,SailException> getStatementsInternal(Resource subj, URI pred, Value obj, boolean includeInferred, Resource... contexts)
           
protected  Lock getTransactionLock()
           
protected  boolean hasConnectionListeners()
           
 boolean isOpen()
          Checks whether this SailConnection is open.
protected  void iterationClosed(org.openrdf.sail.helpers.SailBaseIteration iter)
          Called by SailBaseIteration to indicate that it has been closed.
protected  void notifyStatementAdded(Statement st)
           
protected  void notifyStatementRemoved(Statement st)
           
protected
<T,E extends Exception>
CloseableIteration<T,E>
registerIteration(CloseableIteration<T,E> iter)
          Registers an iteration as active by wrapping it in a SailBaseIteration object and adding it to the list of active iterations.
 void removeConnectionListener(SailConnectionListener listener)
          Deregisters a SailConnection listener with this SailConnection.
 void removeNamespace(String prefix)
          Removes a namespace declaration by removing the association between a prefix and a namespace name.
protected abstract  void removeNamespaceInternal(String prefix)
           
 void removeStatements(Resource subj, URI pred, Value obj, Resource... contexts)
          Removes all statements matching the specified subject, predicate and object from the repository.
protected abstract  void removeStatementsInternal(Resource subj, URI pred, Value obj, Resource... contexts)
           
 void rollback()
          Rolls back the SailConnection, discarding any uncommitted changes that have been made in this SailConnection.
protected abstract  void rollbackInternal()
           
 void setNamespace(String prefix, String name)
          Sets the prefix of a namespace.
protected abstract  void setNamespaceInternal(String prefix, String name)
           
 long size(Resource... contexts)
          Returns the number of (explicit) statements.
protected abstract  long sizeInternal(Resource... contexts)
           
protected abstract  void startTransactionInternal()
           
protected  boolean transactionActive()
           
protected  void verifyIsOpen()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final Logger logger
Constructor Detail

SailConnectionBase

public SailConnectionBase(SailBase sailBase)
Method Detail

isOpen

public final boolean isOpen()
                     throws SailException
Description copied from interface: SailConnection
Checks whether this SailConnection is open. A SailConnection is open from the moment it is created until it is closed.

Specified by:
isOpen in interface SailConnection
Throws:
SailException
See Also:
SailConnection.close()

verifyIsOpen

protected void verifyIsOpen()
                     throws SailException
Throws:
SailException

close

public final void close()
                 throws SailException
Description copied from interface: SailConnection
Closes the connection. Any updates that haven't been committed yet will be rolled back. The connection can no longer be used once it is closed.

Specified by:
close in interface SailConnection
Throws:
SailException

evaluate

public final CloseableIteration<? extends BindingSet,QueryEvaluationException> evaluate(TupleExpr tupleExpr,
                                                                                        Dataset dataset,
                                                                                        BindingSet bindings,
                                                                                        boolean includeInferred)
                                                                                 throws SailException
Description copied from interface: SailConnection
Evaluates the supplied TupleExpr on the data contained in this Sail object, using the (optional) dataset and supplied bindings as input parameters.

Specified by:
evaluate in interface SailConnection
dataset - The dataset to use for evaluating the query, null to use the Sail's default dataset.
bindings - A set of input parameters for the query evaluation. The keys reference variable names that should be bound to the value they map to.
includeInferred - Indicates whether inferred triples are to be considered in the query result. If false, no inferred statements are returned; if true, inferred statements are returned if available
Returns:
The TupleQueryResult.
Throws:
SailException - If the Sail object encountered an error or unexpected situation internally.

getContextIDs

public final CloseableIteration<? extends Resource,SailException> getContextIDs()
                                                                         throws SailException
Description copied from interface: SailConnection
Returns the set of all unique context identifiers that are used to store statements.

Specified by:
getContextIDs in interface SailConnection
Returns:
An iterator over the context identifiers, should not contain any duplicates.
Throws:
SailException

getStatements

public final CloseableIteration<? extends Statement,SailException> getStatements(Resource subj,
                                                                                 URI pred,
                                                                                 Value obj,
                                                                                 boolean includeInferred,
                                                                                 Resource... contexts)
                                                                          throws SailException
Description copied from interface: SailConnection
Gets all statements from the specified contexts that have a specific subject, predicate and/or object. All three parameters may be null to indicate wildcards. The includeInferred parameter can be used to control which statements are fetched: all statements or only the statements that have been added explicitly.

Specified by:
getStatements in interface SailConnection
Parameters:
subj - A Resource specifying the subject, or null for a wildcard.
pred - A URI specifying the predicate, or null for a wildcard.
obj - A Value specifying the object, or null for a wildcard.
includeInferred - if false, no inferred statements are returned; if true, inferred statements are returned if available
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.
Returns:
The statements matching the specified pattern.
Throws:
SailException - If the Sail object encountered an error or unexpected situation internally.

size

public final long size(Resource... contexts)
                throws SailException
Description copied from interface: SailConnection
Returns the number of (explicit) statements.

Specified by:
size in interface SailConnection
Returns:
The number of explicit statements in this Sail.
Throws:
SailException

transactionActive

protected final boolean transactionActive()

autoStartTransaction

protected void autoStartTransaction()
                             throws SailException
Throws:
SailException

commit

public final void commit()
                  throws SailException
Description copied from interface: SailConnection
Commits any updates that have been performed since the last time SailConnection.commit() or SailConnection.rollback() was called.

Specified by:
commit in interface SailConnection
Throws:
SailException - If the SailConnection could not be committed.

rollback

public final void rollback()
                    throws SailException
Description copied from interface: SailConnection
Rolls back the SailConnection, discarding any uncommitted changes that have been made in this SailConnection.

Specified by:
rollback in interface SailConnection
Throws:
SailException - If the SailConnection could not be rolled back.

addStatement

public final void addStatement(Resource subj,
                               URI pred,
                               Value obj,
                               Resource... contexts)
                        throws SailException
Description copied from interface: SailConnection
Adds a statement to each context in the specified contexts.

Specified by:
addStatement in interface SailConnection
Parameters:
subj - The subject of the statement to add.
pred - The predicate of the statement to add.
obj - The object of the statement to add.
contexts - The context(s) to add the statement to. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on the entire repository.
Throws:
SailException - If the statement could not be added.

removeStatements

public final void removeStatements(Resource subj,
                                   URI pred,
                                   Value obj,
                                   Resource... contexts)
                            throws SailException
Description copied from interface: SailConnection
Removes all statements matching the specified subject, predicate and object from the repository. All three parameters may be null to indicate wildcards.

Specified by:
removeStatements in interface SailConnection
Parameters:
subj - The subject of the statement that should be removed, or null to indicate a wildcard.
pred - The predicate of the statement that should be removed, or null to indicate a wildcard.
obj - The object of the statement that should be removed , or null to indicate a wildcard. *
Throws:
SailException - If the statement could not be removed.

clear

public final void clear(Resource... contexts)
                 throws SailException
Description copied from interface: SailConnection
Removes all statements from the specified/all contexts. If no contexts are specified the method operates on the entire repository.

Specified by:
clear in interface SailConnection
Parameters:
contexts - The context(s) from which to remove the statements. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on the entire repository.
Throws:
SailException - If the statements could not be removed.

getNamespaces

public final CloseableIteration<? extends Namespace,SailException> getNamespaces()
                                                                          throws SailException
Description copied from interface: SailConnection
Gets the namespaces relevant to the data contained in this Sail object.

Specified by:
getNamespaces in interface SailConnection
Throws:
SailException - If the Sail object encountered an error or unexpected situation internally.

getNamespace

public final String getNamespace(String prefix)
                          throws SailException
Description copied from interface: SailConnection
Gets the namespace that is mapped to the specified prefix.

Specified by:
getNamespace in interface SailConnection
Parameters:
prefix - A namespace prefix.
Returns:
The namespace name that the specified prefix maps to.
Throws:
SailException

setNamespace

public final void setNamespace(String prefix,
                               String name)
                        throws SailException
Description copied from interface: SailConnection
Sets the prefix of a namespace.

Specified by:
setNamespace in interface SailConnection
Parameters:
prefix - The new prefix.
name - The namespace name that the prefix maps to.
Throws:
SailException

removeNamespace

public final void removeNamespace(String prefix)
                           throws SailException
Description copied from interface: SailConnection
Removes a namespace declaration by removing the association between a prefix and a namespace name.

Specified by:
removeNamespace in interface SailConnection
Parameters:
prefix - The namespace prefix of which the assocation with a namespace name is to be removed.
Throws:
SailException - If the namespace prefix could not be removed.

clearNamespaces

public final void clearNamespaces()
                           throws SailException
Description copied from interface: SailConnection
Removes all namespace declarations from the repository.

Specified by:
clearNamespaces in interface SailConnection
Throws:
SailException - If the namespaces could not be removed.

addConnectionListener

public void addConnectionListener(SailConnectionListener listener)
Description copied from interface: SailConnection
Registers a SailConnection listener with this SailConnection. The listener should be notified of any statements that are added or removed as part of this SailConnection.

Specified by:
addConnectionListener in interface SailConnection
Parameters:
listener - A SailConnectionListener.

removeConnectionListener

public void removeConnectionListener(SailConnectionListener listener)
Description copied from interface: SailConnection
Deregisters a SailConnection listener with this SailConnection.

Specified by:
removeConnectionListener in interface SailConnection
Parameters:
listener - A SailConnectionListener.

hasConnectionListeners

protected boolean hasConnectionListeners()

notifyStatementAdded

protected void notifyStatementAdded(Statement st)

notifyStatementRemoved

protected void notifyStatementRemoved(Statement st)

getSharedConnectionLock

protected Lock getSharedConnectionLock()
                                throws SailException
Throws:
SailException

getExclusiveConnectionLock

protected Lock getExclusiveConnectionLock()
                                   throws SailException
Throws:
SailException

getTransactionLock

protected Lock getTransactionLock()
                           throws SailException
Throws:
SailException

registerIteration

protected <T,E extends Exception> CloseableIteration<T,E> registerIteration(CloseableIteration<T,E> iter)
Registers an iteration as active by wrapping it in a SailBaseIteration object and adding it to the list of active iterations.


iterationClosed

protected void iterationClosed(org.openrdf.sail.helpers.SailBaseIteration iter)
Called by SailBaseIteration to indicate that it has been closed.


closeInternal

protected abstract void closeInternal()
                               throws SailException
Throws:
SailException

evaluateInternal

protected abstract CloseableIteration<? extends BindingSet,QueryEvaluationException> evaluateInternal(TupleExpr tupleExpr,
                                                                                                      Dataset dataset,
                                                                                                      BindingSet bindings,
                                                                                                      boolean includeInferred)
                                                                                               throws SailException
Throws:
SailException

getContextIDsInternal

protected abstract CloseableIteration<? extends Resource,SailException> getContextIDsInternal()
                                                                                       throws SailException
Throws:
SailException

getStatementsInternal

protected abstract CloseableIteration<? extends Statement,SailException> getStatementsInternal(Resource subj,
                                                                                               URI pred,
                                                                                               Value obj,
                                                                                               boolean includeInferred,
                                                                                               Resource... contexts)
                                                                                        throws SailException
Throws:
SailException

sizeInternal

protected abstract long sizeInternal(Resource... contexts)
                              throws SailException
Throws:
SailException

startTransactionInternal

protected abstract void startTransactionInternal()
                                          throws SailException
Throws:
SailException

commitInternal

protected abstract void commitInternal()
                                throws SailException
Throws:
SailException

rollbackInternal

protected abstract void rollbackInternal()
                                  throws SailException
Throws:
SailException

addStatementInternal

protected abstract void addStatementInternal(Resource subj,
                                             URI pred,
                                             Value obj,
                                             Resource... contexts)
                                      throws SailException
Throws:
SailException

removeStatementsInternal

protected abstract void removeStatementsInternal(Resource subj,
                                                 URI pred,
                                                 Value obj,
                                                 Resource... contexts)
                                          throws SailException
Throws:
SailException

clearInternal

protected abstract void clearInternal(Resource... contexts)
                               throws SailException
Throws:
SailException

getNamespacesInternal

protected abstract CloseableIteration<? extends Namespace,SailException> getNamespacesInternal()
                                                                                        throws SailException
Throws:
SailException

getNamespaceInternal

protected abstract String getNamespaceInternal(String prefix)
                                        throws SailException
Throws:
SailException

setNamespaceInternal

protected abstract void setNamespaceInternal(String prefix,
                                             String name)
                                      throws SailException
Throws:
SailException

removeNamespaceInternal

protected abstract void removeNamespaceInternal(String prefix)
                                         throws SailException
Throws:
SailException

clearNamespacesInternal

protected abstract void clearNamespacesInternal()
                                         throws SailException
Throws:
SailException


Copyright © 2001-2008 Aduna. All Rights Reserved.