<!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>AbstractPool (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="AbstractPool (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/AbstractPool.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/util/AnnotationBuilder.html" title="class in com.amazon.carbonado.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/amazon/carbonado/util/AbstractPool.html" target="_top">Frames</a></li>
<li><a href="AbstractPool.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.util</div>
<h2 title="Class AbstractPool" class="title">Class AbstractPool&lt;K,V,E extends java.lang.Exception&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>com.amazon.carbonado.util.AbstractPool&lt;K,V,E&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../com/amazon/carbonado/sequence/SequenceValueProducerPool.html" title="class in com.amazon.carbonado.sequence">SequenceValueProducerPool</a>, <a href="../../../../com/amazon/carbonado/spi/StoragePool.html" title="class in com.amazon.carbonado.spi">StoragePool</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="strong">AbstractPool&lt;K,V,E extends java.lang.Exception&gt;</span>
extends java.lang.Object</pre>
<div class="block">A concurrent pool of strongly referenced values mapped by key. Values are
 lazily created and pooled.</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/util/AbstractPool.html#AbstractPool()">AbstractPool</a></strong>()</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>void</code></td>
<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/util/AbstractPool.html#clear()">clear</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">V</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/util/AbstractPool.html#create(K)">create</a></strong>(<a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">K</a>&nbsp;key)</code>
<div class="block">Return a new value instance.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">V</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/util/AbstractPool.html#get(K)">get</a></strong>(<a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">K</a>&nbsp;key)</code>
<div class="block">Returns a value for the given key, which is lazily created and
 pooled.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">V</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/util/AbstractPool.html#remove(java.lang.Object)">remove</a></strong>(java.lang.Object&nbsp;key)</code>
<div class="block">Remove a value, returning the old value.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.Collection&lt;<a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">V</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/util/AbstractPool.html#values()">values</a></strong>()</code>
<div class="block">Returns the pool values, which may be concurrently modified.</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="AbstractPool()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractPool</h4>
<pre>protected&nbsp;AbstractPool()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="get(java.lang.Object)">
<!--   -->
</a><a name="get(K)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre>public&nbsp;<a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">V</a>&nbsp;get(<a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">K</a>&nbsp;key)
      throws <a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">E</a> extends java.lang.Exception</pre>
<div class="block">Returns a value for the given key, which is lazily created and
 pooled. If multiple threads are requesting upon the same key
 concurrently, at most one thread attempts to lazily create the
 value. The others wait for it to become available.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">E</a> extends java.lang.Exception</code></dd></dl>
</li>
</ul>
<a name="remove(java.lang.Object)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>public&nbsp;<a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">V</a>&nbsp;remove(java.lang.Object&nbsp;key)</pre>
<div class="block">Remove a value, returning the old value.</div>
</li>
</ul>
<a name="values()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre>public&nbsp;java.util.Collection&lt;<a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">V</a>&gt;&nbsp;values()</pre>
<div class="block">Returns the pool values, which may be concurrently modified.</div>
</li>
</ul>
<a name="clear()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre>public&nbsp;void&nbsp;clear()</pre>
</li>
</ul>
<a name="create(java.lang.Object)">
<!--   -->
</a><a name="create(K)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>create</h4>
<pre>protected abstract&nbsp;<a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">V</a>&nbsp;create(<a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">K</a>&nbsp;key)
                     throws <a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">E</a> extends java.lang.Exception</pre>
<div class="block">Return a new value instance.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../com/amazon/carbonado/util/AbstractPool.html" title="type parameter in AbstractPool">E</a> extends java.lang.Exception</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/AbstractPool.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/util/AnnotationBuilder.html" title="class in com.amazon.carbonado.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/amazon/carbonado/util/AbstractPool.html" target="_top">Frames</a></li>
<li><a href="AbstractPool.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>