diff options
Diffstat (limited to 'apidocs/com/amazon/carbonado/Repository.html')
-rw-r--r-- | apidocs/com/amazon/carbonado/Repository.html | 422 |
1 files changed, 422 insertions, 0 deletions
diff --git a/apidocs/com/amazon/carbonado/Repository.html b/apidocs/com/amazon/carbonado/Repository.html new file mode 100644 index 0000000..74fa5d3 --- /dev/null +++ b/apidocs/com/amazon/carbonado/Repository.html @@ -0,0 +1,422 @@ +<!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:40 PST 2013 --> +<meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> +<title>Repository (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="Repository (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/Repository.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><a href="../../../com/amazon/carbonado/Query.Timeout.html" title="class in com.amazon.carbonado"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../com/amazon/carbonado/RepositoryBuilder.html" title="interface in com.amazon.carbonado"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/amazon/carbonado/Repository.html" target="_top">Frames</a></li> +<li><a href="Repository.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>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </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</div> +<h2 title="Interface Repository" class="title">Interface Repository</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/amazon/carbonado/spi/AbstractRepository.html" title="class in com.amazon.carbonado.spi">AbstractRepository</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="strong">Repository</span></pre> +<div class="block">A Repository represents a database for <a href="../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado"><code>Storable</code></a> + 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". + + <P>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. + + <p>Repository instances should be thread-safe and immutable. Therefore, it + is safe for multiple threads to be interacting with a Repository.</div> +<dl><dt><span class="strong">Author:</span></dt> + <dd>Brian S O'Neill</dd> +<dt><span class="strong">See Also:</span></dt><dd><a href="../../../com/amazon/carbonado/RepositoryBuilder.html" title="interface in com.amazon.carbonado"><code>RepositoryBuilder</code></a></dd></dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== 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>void</code></td> +<td class="colLast"><code><strong><a href="../../../com/amazon/carbonado/Repository.html#close()">close</a></strong>()</code> +<div class="block">Closes this repository reference, aborting any current + transactions.</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/Repository.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="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/Repository.html#enterTransaction()">enterTransaction</a></strong>()</code> +<div class="block">Causes the current thread to enter a transaction scope.</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/Repository.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="altColor"> +<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/Repository.html#getCapability(java.lang.Class)">getCapability</a></strong>(java.lang.Class<C> capabilityType)</code> +<div class="block">Requests a specific capability of 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/Repository.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/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a></code></td> +<td class="colLast"><code><strong><a href="../../../com/amazon/carbonado/Repository.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="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/Repository.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> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ 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>java.lang.String getName()</pre> +<div class="block">Returns the name of this repository.</div> +</li> +</ul> +<a name="storageFor(java.lang.Class)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>storageFor</h4> +<pre><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">Returns a Storage instance for the given user defined Storable class or + interface.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>specific type of Storage instance</dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code>java.lang.IllegalArgumentException</code> - if specified type is null</dd> +<dd><code><a href="../../../com/amazon/carbonado/MalformedTypeException.html" title="class in com.amazon.carbonado">MalformedTypeException</a></code> - if specified type is not suitable</dd> +<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><a href="../../../com/amazon/carbonado/Transaction.html" title="interface in com.amazon.carbonado">Transaction</a> enterTransaction()</pre> +<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> +</li> +</ul> +<a name="enterTransaction(com.amazon.carbonado.IsolationLevel)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enterTransaction</h4> +<pre><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">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><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">Throws:</span></dt> +<dd><code>java.lang.UnsupportedOperationException</code> - if repository does not support + isolation as high as the desired level</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../com/amazon/carbonado/Repository.html#enterTransaction()"><code>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><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">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><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">Throws:</span></dt> +<dd><code>java.lang.UnsupportedOperationException</code> - if repository does not support + isolation as high as the desired level</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../com/amazon/carbonado/Repository.html#enterTransaction()"><code>enterTransaction()</code></a></dd></dl> +</li> +</ul> +<a name="getTransactionIsolationLevel()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTransactionIsolationLevel</h4> +<pre><a href="../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a> getTransactionIsolationLevel()</pre> +<div class="block">Returns the isolation level of the current transaction, or null if there + is no transaction in the current thread.</div> +</li> +</ul> +<a name="getCapability(java.lang.Class)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCapability</h4> +<pre><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">Requests a specific capability of this Repository. This allows + repositories to support extended features without having to clutter the + main repository interface. The list of supported capabilities is + documented with repository implementations.</div> +<dl><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="blockListLast"> +<li class="blockList"> +<h4>close</h4> +<pre>void close()</pre> +<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><span class="strong">Throws:</span></dt> +<dd><code>java.lang.SecurityException</code> - if caller does not have permission</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/Repository.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><a href="../../../com/amazon/carbonado/Query.Timeout.html" title="class in com.amazon.carbonado"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../com/amazon/carbonado/RepositoryBuilder.html" title="interface in com.amazon.carbonado"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/amazon/carbonado/Repository.html" target="_top">Frames</a></li> +<li><a href="Repository.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>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </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> |