summaryrefslogtreecommitdiff
path: root/apidocs/com/amazon/carbonado/spi/AbstractRepository.html
diff options
context:
space:
mode:
Diffstat (limited to 'apidocs/com/amazon/carbonado/spi/AbstractRepository.html')
-rw-r--r--apidocs/com/amazon/carbonado/spi/AbstractRepository.html759
1 files changed, 759 insertions, 0 deletions
diff --git a/apidocs/com/amazon/carbonado/spi/AbstractRepository.html b/apidocs/com/amazon/carbonado/spi/AbstractRepository.html
new file mode 100644
index 0000000..1e5daa2
--- /dev/null
+++ b/apidocs/com/amazon/carbonado/spi/AbstractRepository.html
@@ -0,0 +1,759 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_25) on Tue Dec 03 13:53:42 PST 2013 -->
+<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
+<title>AbstractRepository (Carbonado 1.2.3 API)</title>
+<meta name="date" content="2013-12-03">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="AbstractRepository (Carbonado 1.2.3 API)";
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!-- -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractRepository.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-files/index-1.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../../com/amazon/carbonado/spi/AbstractRepositoryBuilder.html" title="class in com.amazon.carbonado.spi"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?com/amazon/carbonado/spi/AbstractRepository.html" target="_top">Frames</a></li>
+<li><a href="AbstractRepository.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">com.amazon.carbonado.spi</div>
+<h2 title="Class AbstractRepository" class="title">Class AbstractRepository&lt;Txn&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>com.amazon.carbonado.spi.AbstractRepository&lt;Txn&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>Txn</code> - Transaction type</dd></dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../com/amazon/carbonado/capability/Capability.html" title="interface in com.amazon.carbonado.capability">Capability</a>, <a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html" title="interface in com.amazon.carbonado.capability">ShutdownCapability</a>, <a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a>, <a href="../../../../com/amazon/carbonado/sequence/SequenceCapability.html" title="interface in com.amazon.carbonado.sequence">SequenceCapability</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="strong">AbstractRepository&lt;Txn&gt;</span>
+extends java.lang.Object
+implements <a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a>, <a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html" title="interface in com.amazon.carbonado.capability">ShutdownCapability</a>, <a href="../../../../com/amazon/carbonado/sequence/SequenceCapability.html" title="interface in com.amazon.carbonado.sequence">SequenceCapability</a></pre>
+<div class="block">Implements basic functionality required by a core Repository.</div>
+<dl><dt><span class="strong">Since:</span></dt>
+ <dd>1.2</dd>
+<dt><span class="strong">Author:</span></dt>
+ <dd>Brian S O'Neill</dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#AbstractRepository(java.lang.String)">AbstractRepository</a></strong>(java.lang.String&nbsp;name)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected java.util.Collection&lt;<a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#allStorage()">allStorage</a></strong>()</code>
+<div class="block">Returns all available Storage instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#close()">close</a></strong>()</code>
+<div class="block">Closes this repository reference, aborting any current
+ transactions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../com/amazon/carbonado/sequence/SequenceValueProducer.html" title="interface in com.amazon.carbonado.sequence">SequenceValueProducer</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#createSequenceValueProducer(java.lang.String)">createSequenceValueProducer</a></strong>(java.lang.String&nbsp;name)</code>
+<div class="block">Called upon to create a new SequenceValueProducer instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected abstract &lt;S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>&gt;&nbsp;<br><a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a>&lt;S&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#createStorage(java.lang.Class)">createStorage</a></strong>(java.lang.Class&lt;S&gt;&nbsp;type)</code>
+<div class="block">Called upon to create a new Storage instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#enterTopTransaction(com.amazon.carbonado.IsolationLevel)">enterTopTransaction</a></strong>(<a href="../../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a>&nbsp;level)</code>
+<div class="block">Causes the current thread to enter a <i>top-level</i> transaction scope
+ with an explict isolation level.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#enterTransaction()">enterTransaction</a></strong>()</code>
+<div class="block">Causes the current thread to enter a transaction scope.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#enterTransaction(com.amazon.carbonado.IsolationLevel)">enterTransaction</a></strong>(<a href="../../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a>&nbsp;level)</code>
+<div class="block">Causes the current thread to enter a transaction scope with an explict
+ isolation level.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;C extends <a href="../../../../com/amazon/carbonado/capability/Capability.html" title="interface in com.amazon.carbonado.capability">Capability</a>&gt;&nbsp;<br>C</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#getCapability(java.lang.Class)">getCapability</a></strong>(java.lang.Class&lt;C&gt;&nbsp;capabilityType)</code>
+<div class="block">Default implementation checks if Repository implements Capability
+ interface, and if so, returns the Repository.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract org.apache.commons.logging.Log</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#getLog()">getLog</a></strong>()</code>
+<div class="block">Return the main Log object for this Repository.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#getName()">getName</a></strong>()</code>
+<div class="block">Returns the name of this repository.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../com/amazon/carbonado/sequence/SequenceValueProducer.html" title="interface in com.amazon.carbonado.sequence">SequenceValueProducer</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#getSequenceValueProducer(java.lang.String)">getSequenceValueProducer</a></strong>(java.lang.String&nbsp;name)</code>
+<div class="block">Retrieve and/or generate a SequenceValueProducer for the given name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#getTransactionIsolationLevel()">getTransactionIsolationLevel</a></strong>()</code>
+<div class="block">Returns the isolation level of the current transaction, or null if there
+ is no transaction in the current thread.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#isAutoShutdownEnabled()">isAutoShutdownEnabled</a></strong>()</code>
+<div class="block">Returns true if repository has a shutdown hook registered to
+ automatically call shutdown when the virtual machine exits.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#isClosed()">isClosed</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../com/amazon/carbonado/txn/TransactionScope.html" title="class in com.amazon.carbonado.txn">TransactionScope</a>&lt;<a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html" title="type parameter in AbstractRepository">Txn</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#localTransactionScope()">localTransactionScope</a></strong>()</code>
+<div class="block">Returns the thread-local TransactionScope, creating it if needed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#lockoutShutdown()">lockoutShutdown</a></strong>()</code>
+<div class="block">Call to prevent shutdown hook from running.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#setAutoShutdownEnabled(boolean)">setAutoShutdownEnabled</a></strong>(boolean&nbsp;enabled)</code>
+<div class="block">Request to enable or disable the automatic shutdown hook.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#shutdown()">shutdown</a></strong>()</code>
+<div class="block">Similar to calling close on a repository, except should only be called
+ when the virtual machine is in the process of shutting down.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#shutdownHook()">shutdownHook</a></strong>()</code>
+<div class="block">Install custom shutdown logic by overriding this method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>&gt;&nbsp;<br><a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a>&lt;S&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#storageFor(java.lang.Class)">storageFor</a></strong>(java.lang.Class&lt;S&gt;&nbsp;type)</code>
+<div class="block">Returns a Storage instance for the given user defined Storable class or
+ interface.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../com/amazon/carbonado/txn/TransactionManager.html" title="class in com.amazon.carbonado.txn">TransactionManager</a>&lt;<a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html" title="type parameter in AbstractRepository">Txn</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#transactionManager()">transactionManager</a></strong>()</code>
+<div class="block">Returns the repository's TransactionManager.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html#unlockoutShutdown()">unlockoutShutdown</a></strong>()</code>
+<div class="block">Only call this to release lockoutShutdown.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractRepository(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractRepository</h4>
+<pre>protected&nbsp;AbstractRepository(java.lang.String&nbsp;name)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;java.lang.String&nbsp;getName()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html#getName()">Repository</a></code></strong></div>
+<div class="block">Returns the name of this repository.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/Repository.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="storageFor(java.lang.Class)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>storageFor</h4>
+<pre>public&nbsp;&lt;S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>&gt;&nbsp;<a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a>&lt;S&gt;&nbsp;storageFor(java.lang.Class&lt;S&gt;&nbsp;type)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a>,
+ <a href="../../../../com/amazon/carbonado/RepositoryException.html" title="class in com.amazon.carbonado">RepositoryException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html#storageFor(java.lang.Class)">Repository</a></code></strong></div>
+<div class="block">Returns a Storage instance for the given user defined Storable class or
+ interface.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/Repository.html#storageFor(java.lang.Class)">storageFor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>specific type of Storage instance</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code> - if specified type cannot be supported</dd>
+<dd><code><a href="../../../../com/amazon/carbonado/RepositoryException.html" title="class in com.amazon.carbonado">RepositoryException</a></code> - if storage layer throws any other kind of
+ exception</dd></dl>
+</li>
+</ul>
+<a name="enterTransaction()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>enterTransaction</h4>
+<pre>public&nbsp;<a href="../../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a>&nbsp;enterTransaction()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html#enterTransaction()">Repository</a></code></strong></div>
+<div class="block">Causes the current thread to enter a transaction scope. Call commit
+ inside the transaction in order for any updates to the repository to be
+ applied. Be sure to call exit when leaving the scope.
+ <p>
+ To ensure exit is called, use transactions as follows:
+ <pre>
+ 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();
+ }
+ </pre></div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/Repository.html#enterTransaction()">enterTransaction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="enterTransaction(com.amazon.carbonado.IsolationLevel)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>enterTransaction</h4>
+<pre>public&nbsp;<a href="../../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a>&nbsp;enterTransaction(<a href="../../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a>&nbsp;level)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html#enterTransaction(com.amazon.carbonado.IsolationLevel)">Repository</a></code></strong></div>
+<div class="block">Causes the current thread to enter a transaction scope with an explict
+ isolation level. The actual isolation level may be higher than
+ requested, if the repository does not support the exact level. If the
+ repository does not support a high enough level, it throws an
+ UnsupportedOperationException.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/Repository.html#enterTransaction(com.amazon.carbonado.IsolationLevel)">enterTransaction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>level</code> - minimum desired transaction isolation level -- if null, a
+ suitable default is selected</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../com/amazon/carbonado/Repository.html#enterTransaction()"><code>Repository.enterTransaction()</code></a></dd></dl>
+</li>
+</ul>
+<a name="enterTopTransaction(com.amazon.carbonado.IsolationLevel)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>enterTopTransaction</h4>
+<pre>public&nbsp;<a href="../../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a>&nbsp;enterTopTransaction(<a href="../../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a>&nbsp;level)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html#enterTopTransaction(com.amazon.carbonado.IsolationLevel)">Repository</a></code></strong></div>
+<div class="block">Causes the current thread to enter a <i>top-level</i> transaction scope
+ with an explict isolation level. The actual isolation level may be
+ higher than requested, if the repository does not support the exact
+ level. If the repository does not support a high enough level, it throws
+ an UnsupportedOperationException.
+
+ <p>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.
+
+ <p>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.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/Repository.html#enterTopTransaction(com.amazon.carbonado.IsolationLevel)">enterTopTransaction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>level</code> - minimum desired transaction isolation level -- if null, a
+ suitable default is selected</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../com/amazon/carbonado/Repository.html#enterTransaction()"><code>Repository.enterTransaction()</code></a></dd></dl>
+</li>
+</ul>
+<a name="getTransactionIsolationLevel()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransactionIsolationLevel</h4>
+<pre>public&nbsp;<a href="../../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a>&nbsp;getTransactionIsolationLevel()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html#getTransactionIsolationLevel()">Repository</a></code></strong></div>
+<div class="block">Returns the isolation level of the current transaction, or null if there
+ is no transaction in the current thread.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/Repository.html#getTransactionIsolationLevel()">getTransactionIsolationLevel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getCapability(java.lang.Class)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCapability</h4>
+<pre>public&nbsp;&lt;C extends <a href="../../../../com/amazon/carbonado/capability/Capability.html" title="interface in com.amazon.carbonado.capability">Capability</a>&gt;&nbsp;C&nbsp;getCapability(java.lang.Class&lt;C&gt;&nbsp;capabilityType)</pre>
+<div class="block">Default implementation checks if Repository implements Capability
+ interface, and if so, returns the Repository.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/Repository.html#getCapability(java.lang.Class)">getCapability</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>capabilityType</code> - type of capability requested</dd>
+<dt><span class="strong">Returns:</span></dt><dd>capability instance or null if not supported</dd></dl>
+</li>
+</ul>
+<a name="close()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html#close()">Repository</a></code></strong></div>
+<div class="block">Closes this repository reference, aborting any current
+ transactions. Operations on objects returned by this repository will
+ fail when accessing the storage layer.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/Repository.html#close()">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/Repository.html" title="interface in com.amazon.carbonado">Repository</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="isClosed()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isClosed</h4>
+<pre>public&nbsp;boolean&nbsp;isClosed()</pre>
+</li>
+</ul>
+<a name="isAutoShutdownEnabled()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isAutoShutdownEnabled</h4>
+<pre>public&nbsp;boolean&nbsp;isAutoShutdownEnabled()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html#isAutoShutdownEnabled()">ShutdownCapability</a></code></strong></div>
+<div class="block">Returns true if repository has a shutdown hook registered to
+ automatically call shutdown when the virtual machine exits.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html#isAutoShutdownEnabled()">isAutoShutdownEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html" title="interface in com.amazon.carbonado.capability">ShutdownCapability</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setAutoShutdownEnabled(boolean)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAutoShutdownEnabled</h4>
+<pre>public&nbsp;void&nbsp;setAutoShutdownEnabled(boolean&nbsp;enabled)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html#setAutoShutdownEnabled(boolean)">ShutdownCapability</a></code></strong></div>
+<div class="block">Request to enable or disable the automatic shutdown hook. Repository may
+ ignore this request if shutdown is in progress.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html#setAutoShutdownEnabled(boolean)">setAutoShutdownEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html" title="interface in com.amazon.carbonado.capability">ShutdownCapability</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="shutdown()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre>public&nbsp;void&nbsp;shutdown()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html#shutdown()">ShutdownCapability</a></code></strong></div>
+<div class="block">Similar to calling close on a repository, except should only be called
+ when the virtual machine is in the process of shutting down. Calling
+ close may cause spurious exceptions to be thrown by other threads which
+ may be interacting with the repository. Shutdown tries to reduce these
+ exceptions from being thrown by effectively <i>suspending</i> any
+ threads which continue to interact with this repository. <b>For this
+ reason, this method should only ever be called during a virtual machine
+ shutdown.</b>
+
+ <p>Repositories may choose to implement this method by simply calling
+ close. There is no guarantee that shutdown will reduce exceptions, and
+ it might not suspend any threads. Also, repositories that require proper
+ shutdown should automatically register runtime hooks, and so this method
+ usually doesn't need to be called manually.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html#shutdown()">shutdown</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/capability/ShutdownCapability.html" title="interface in com.amazon.carbonado.capability">ShutdownCapability</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getSequenceValueProducer(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSequenceValueProducer</h4>
+<pre>public&nbsp;<a href="../../../../com/amazon/carbonado/sequence/SequenceValueProducer.html" title="interface in com.amazon.carbonado.sequence">SequenceValueProducer</a>&nbsp;getSequenceValueProducer(java.lang.String&nbsp;name)
+ throws <a href="../../../../com/amazon/carbonado/RepositoryException.html" title="class in com.amazon.carbonado">RepositoryException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../com/amazon/carbonado/sequence/SequenceCapability.html#getSequenceValueProducer(java.lang.String)">SequenceCapability</a></code></strong></div>
+<div class="block">Retrieve and/or generate a SequenceValueProducer for the given name.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/sequence/SequenceCapability.html#getSequenceValueProducer(java.lang.String)">getSequenceValueProducer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/amazon/carbonado/sequence/SequenceCapability.html" title="interface in com.amazon.carbonado.sequence">SequenceCapability</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - sequence name</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/RepositoryException.html" title="class in com.amazon.carbonado">RepositoryException</a></code></dd></dl>
+</li>
+</ul>
+<a name="transactionManager()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>transactionManager</h4>
+<pre>protected abstract&nbsp;<a href="../../../../com/amazon/carbonado/txn/TransactionManager.html" title="class in com.amazon.carbonado.txn">TransactionManager</a>&lt;<a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html" title="type parameter in AbstractRepository">Txn</a>&gt;&nbsp;transactionManager()</pre>
+<div class="block">Returns the repository's TransactionManager.</div>
+</li>
+</ul>
+<a name="localTransactionScope()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localTransactionScope</h4>
+<pre>protected abstract&nbsp;<a href="../../../../com/amazon/carbonado/txn/TransactionScope.html" title="class in com.amazon.carbonado.txn">TransactionScope</a>&lt;<a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html" title="type parameter in AbstractRepository">Txn</a>&gt;&nbsp;localTransactionScope()</pre>
+<div class="block">Returns the thread-local TransactionScope, creating it if needed.</div>
+</li>
+</ul>
+<a name="lockoutShutdown()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lockoutShutdown</h4>
+<pre>protected&nbsp;void&nbsp;lockoutShutdown()</pre>
+<div class="block">Call to prevent shutdown hook from running. Be sure to call
+ unlockoutShutdown afterwards.</div>
+</li>
+</ul>
+<a name="unlockoutShutdown()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unlockoutShutdown</h4>
+<pre>protected&nbsp;void&nbsp;unlockoutShutdown()</pre>
+<div class="block">Only call this to release lockoutShutdown.</div>
+</li>
+</ul>
+<a name="allStorage()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>allStorage</h4>
+<pre>protected&nbsp;java.util.Collection&lt;<a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a>&gt;&nbsp;allStorage()</pre>
+<div class="block">Returns all available Storage instances.</div>
+</li>
+</ul>
+<a name="shutdownHook()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>shutdownHook</h4>
+<pre>protected&nbsp;void&nbsp;shutdownHook()</pre>
+<div class="block">Install custom shutdown logic by overriding this method. By default it
+ does nothing.</div>
+</li>
+</ul>
+<a name="getLog()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLog</h4>
+<pre>protected abstract&nbsp;org.apache.commons.logging.Log&nbsp;getLog()</pre>
+<div class="block">Return the main Log object for this Repository. If none provided, then
+ no messages are logged by AbstractRepository.</div>
+</li>
+</ul>
+<a name="createStorage(java.lang.Class)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createStorage</h4>
+<pre>protected abstract&nbsp;&lt;S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>&gt;&nbsp;<a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a>&lt;S&gt;&nbsp;createStorage(java.lang.Class&lt;S&gt;&nbsp;type)
+ throws <a href="../../../../com/amazon/carbonado/RepositoryException.html" title="class in com.amazon.carbonado">RepositoryException</a></pre>
+<div class="block">Called upon to create a new Storage instance.</div>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/RepositoryException.html" title="class in com.amazon.carbonado">RepositoryException</a></code></dd></dl>
+</li>
+</ul>
+<a name="createSequenceValueProducer(java.lang.String)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createSequenceValueProducer</h4>
+<pre>protected abstract&nbsp;<a href="../../../../com/amazon/carbonado/sequence/SequenceValueProducer.html" title="interface in com.amazon.carbonado.sequence">SequenceValueProducer</a>&nbsp;createSequenceValueProducer(java.lang.String&nbsp;name)
+ throws <a href="../../../../com/amazon/carbonado/RepositoryException.html" title="class in com.amazon.carbonado">RepositoryException</a></pre>
+<div class="block">Called upon to create a new SequenceValueProducer instance.</div>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/RepositoryException.html" title="class in com.amazon.carbonado">RepositoryException</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!-- -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractRepository.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-files/index-1.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../../com/amazon/carbonado/spi/AbstractRepositoryBuilder.html" title="class in com.amazon.carbonado.spi"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?com/amazon/carbonado/spi/AbstractRepository.html" target="_top">Frames</a></li>
+<li><a href="AbstractRepository.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2006-2013 <a href="https://github.com/Carbonado/Carbonado">Amazon Technologies, Inc.</a>. All Rights Reserved.</small></p>
+</body>
+</html>