summaryrefslogtreecommitdiff
path: root/apidocs/com/amazon/carbonado/Repository.html
diff options
context:
space:
mode:
Diffstat (limited to 'apidocs/com/amazon/carbonado/Repository.html')
-rw-r--r--apidocs/com/amazon/carbonado/Repository.html422
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:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&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</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">&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>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>&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="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>&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="altColor">
+<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/Repository.html#getCapability(java.lang.Class)">getCapability</a></strong>(java.lang.Class&lt;C&gt;&nbsp;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>&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/Repository.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>
+</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&nbsp;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>&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">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>&nbsp;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>&nbsp;enterTransaction(<a href="../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a>&nbsp;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>&nbsp;enterTopTransaction(<a href="../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado">IsolationLevel</a>&nbsp;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>&nbsp;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>&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">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&nbsp;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:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&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>