diff options
Diffstat (limited to 'apidocs/com/amazon/carbonado/spi/AbstractRepository.html')
-rw-r--r-- | apidocs/com/amazon/carbonado/spi/AbstractRepository.html | 759 |
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: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor_summary">Constr</a> | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor_detail">Constr</a> | </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<Txn></h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li>java.lang.Object</li> +<li> +<ul class="inheritance"> +<li>com.amazon.carbonado.spi.AbstractRepository<Txn></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<Txn></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"> </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 name)</code> </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"> </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<<a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a>></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 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 <S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>> <br><a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a><S></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<S> 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> 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> 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><C extends <a href="../../../../com/amazon/carbonado/capability/Capability.html" title="interface in com.amazon.carbonado.capability">Capability</a>> <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<C> 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 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> </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><<a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html" title="type parameter in AbstractRepository">Txn</a>></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 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><S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>> <br><a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a><S></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<S> 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><<a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html" title="type parameter in AbstractRepository">Txn</a>></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 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 AbstractRepository(java.lang.String 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 java.lang.String getName()</pre> +<div class="block"><strong>Description copied from interface: <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> in interface <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 <S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>> <a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a><S> storageFor(java.lang.Class<S> 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: <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> in interface <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 <a href="../../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a> enterTransaction()</pre> +<div class="block"><strong>Description copied from interface: <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> in interface <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 <a href="../../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a> enterTransaction(<a href="../../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a> level)</pre> +<div class="block"><strong>Description copied from interface: <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> in interface <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 <a href="../../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a> enterTopTransaction(<a href="../../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a> level)</pre> +<div class="block"><strong>Description copied from interface: <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> in interface <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 <a href="../../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a> getTransactionIsolationLevel()</pre> +<div class="block"><strong>Description copied from interface: <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> in interface <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 <C extends <a href="../../../../com/amazon/carbonado/capability/Capability.html" title="interface in com.amazon.carbonado.capability">Capability</a>> C getCapability(java.lang.Class<C> 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> in interface <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 void close()</pre> +<div class="block"><strong>Description copied from interface: <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> in interface <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 boolean isClosed()</pre> +</li> +</ul> +<a name="isAutoShutdownEnabled()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAutoShutdownEnabled</h4> +<pre>public boolean isAutoShutdownEnabled()</pre> +<div class="block"><strong>Description copied from interface: <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> in interface <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 void setAutoShutdownEnabled(boolean enabled)</pre> +<div class="block"><strong>Description copied from interface: <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> in interface <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 void shutdown()</pre> +<div class="block"><strong>Description copied from interface: <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> in interface <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 <a href="../../../../com/amazon/carbonado/sequence/SequenceValueProducer.html" title="interface in com.amazon.carbonado.sequence">SequenceValueProducer</a> getSequenceValueProducer(java.lang.String 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: <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> in interface <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 <a href="../../../../com/amazon/carbonado/txn/TransactionManager.html" title="class in com.amazon.carbonado.txn">TransactionManager</a><<a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html" title="type parameter in AbstractRepository">Txn</a>> 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 <a href="../../../../com/amazon/carbonado/txn/TransactionScope.html" title="class in com.amazon.carbonado.txn">TransactionScope</a><<a href="../../../../com/amazon/carbonado/spi/AbstractRepository.html" title="type parameter in AbstractRepository">Txn</a>> 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 void 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 void 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 java.util.Collection<<a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a>> 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 void 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 org.apache.commons.logging.Log 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 <S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>> <a href="../../../../com/amazon/carbonado/Storage.html" title="interface in com.amazon.carbonado">Storage</a><S> createStorage(java.lang.Class<S> 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 <a href="../../../../com/amazon/carbonado/sequence/SequenceValueProducer.html" title="interface in com.amazon.carbonado.sequence">SequenceValueProducer</a> createSequenceValueProducer(java.lang.String 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: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor_summary">Constr</a> | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor_detail">Constr</a> | </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 © 2006-2013 <a href="https://github.com/Carbonado/Carbonado">Amazon Technologies, Inc.</a>. All Rights Reserved.</small></p> +</body> +</html> |