public interface Repository
Storable
 instances. Some repositories do not have control over the schema (for example, a JDBC
 Repository depends on the schema defined by the underlying relational database); such
 repositories are called "dependent".  Conversely, a repository which has complete control
 over the schema is termed "independent".
 A dependent repository requires and will verify that Storables have a matching definition in the external storage layer. An independent repository will automatically update type definitions in its database to match changes to Storable definitions.
Repository instances should be thread-safe and immutable. Therefore, it is safe for multiple threads to be interacting with a Repository.
RepositoryBuilder| Modifier and Type | Method and Description | 
|---|---|
void | 
close()
Closes this repository reference, aborting any current
 transactions. 
 | 
Transaction | 
enterTopTransaction(IsolationLevel level)
Causes the current thread to enter a top-level transaction scope
 with an explict isolation level. 
 | 
Transaction | 
enterTransaction()
Causes the current thread to enter a transaction scope. 
 | 
Transaction | 
enterTransaction(IsolationLevel level)
Causes the current thread to enter a transaction scope with an explict
 isolation level. 
 | 
<C extends Capability>  | 
getCapability(java.lang.Class<C> capabilityType)
Requests a specific capability of this Repository. 
 | 
java.lang.String | 
getName()
Returns the name of this repository. 
 | 
IsolationLevel | 
getTransactionIsolationLevel()
Returns the isolation level of the current transaction, or null if there
 is no transaction in the current thread. 
 | 
<S extends Storable>  | 
storageFor(java.lang.Class<S> type)
Returns a Storage instance for the given user defined Storable class or
 interface. 
 | 
java.lang.String getName()
<S extends Storable> Storage<S> storageFor(java.lang.Class<S> type) throws SupportException, RepositoryException
java.lang.IllegalArgumentException - if specified type is nullMalformedTypeException - if specified type is not suitableSupportException - if specified type cannot be supportedRepositoryException - if storage layer throws any other kind of
 exceptionTransaction enterTransaction()
To ensure exit is called, use transactions as follows:
 Transaction txn = repository.enterTransaction();
 try {
     // Make updates to storage layer
     ...
     // Commit the changes up to this point
     txn.commit();
     // Optionally make more updates
     ...
     // Commit remaining changes
     txn.commit();
 } finally {
     // Ensure transaction exits, aborting uncommitted changes if an exception was thrown
     txn.exit();
 }
 Transaction enterTransaction(IsolationLevel level)
level - minimum desired transaction isolation level -- if null, a
 suitable default is selectedjava.lang.UnsupportedOperationException - if repository does not support
 isolation as high as the desired levelenterTransaction()Transaction enterTopTransaction(IsolationLevel level)
This method requests a top-level transaction, which means it never has a parent transaction, but it still can be a parent transaction itself. This kind of transaction is useful when a commit must absolutely succeed, even if the current thread is already in a transaction scope. If there was a parent transaction, then a commit might still be rolled back by the parent.
Requesting a top-level transaction can be deadlock prone if the current thread is already in a transaction scope. The top-level transaction may not be able to obtain locks held by the parent transaction. An alternative to requesting top-level transactions is to execute transactions in separate threads.
level - minimum desired transaction isolation level -- if null, a
 suitable default is selectedjava.lang.UnsupportedOperationException - if repository does not support
 isolation as high as the desired levelenterTransaction()IsolationLevel getTransactionIsolationLevel()
<C extends Capability> C getCapability(java.lang.Class<C> capabilityType)
capabilityType - type of capability requestedvoid close()
java.lang.SecurityException - if caller does not have permissionCopyright © 2006-2013 Amazon Technologies, Inc.. All Rights Reserved.