<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/jcache/1.0.0/javadoc/javax/cache/Cache.html" />
<!-- Generated by javadoc (version 1.7.0_25) on Fri Mar 28 13:34:25 EST 2014 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Cache (JSR107 API and SPI 1.0.0 API)</title>
<meta name="date" content="2014-03-28">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Cache (JSR107 API and SPI 1.0.0 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/Cache.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-all.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="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?javax/cache/Cache.html" target="_top">Frames</a></li>
<li><a href="Cache.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><a href="#nested_class_summary">Nested</a>&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">javax.cache</div>
<h2 title="Interface Cache" class="title">Interface Cache&lt;K,V&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>K</code> - the type of key</dd><dd><code>V</code> - the type of value</dd></dl>
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="http://download.oracle.com/javase/6/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>, <a href="http://download.oracle.com/javase/6/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache">Cache.Entry</a>&lt;K,V&gt;&gt;</dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">Cache&lt;K,V&gt;</span>
extends <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache">Cache.Entry</a>&lt;K,V&gt;&gt;, <a href="http://download.oracle.com/javase/6/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
<div class="block">A <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a> is a Map-like data structure that provides temporary storage
 of application data.
 <p>
 Like <a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>s, <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a>s
 <ol>
 <li>store key-value pairs, each referred to as an <a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><code>Cache.Entry</code></a></li>
 <li>allow use of Java Generics to improve application type-safety</li>
 <li>are <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang"><code>Iterable</code></a></li>
 </ol>
 <p>
 Unlike <a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>s, <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a>s
 <ol>
 <li>do not allow null keys or values.  Attempts to use <code>null</code>
 will result in a <a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang"><code>NullPointerException</code></a></li>
 <li>provide the ability to read values from a
 <a href="../../javax/cache/integration/CacheLoader.html" title="interface in javax.cache.integration"><code>CacheLoader</code></a> (read-through-caching)
 when a value being requested is not in a cache</li>
 <li>provide the ability to write values to a
 <a href="../../javax/cache/integration/CacheWriter.html" title="interface in javax.cache.integration"><code>CacheWriter</code></a> (write-through-caching)
 when a value being created/updated/removed from a cache</li>
 <li>provide the ability to observe cache entry changes</li>
 <li>may capture and measure operational statistics</li>
 </ol>
 <p>
 A simple example of how to use a cache is:
 <pre><code>
 String cacheName = "sampleCache";
 CachingProvider provider = Caching.getCachingProvider();
 CacheManager manager = provider.getCacheManager();
 Cache&lt;Integer, Date&gt; cache = manager.getCache(cacheName, Integer.class,
                                                     Date.class);
 Date value1 = new Date();
 Integer key = 1;
 cache.put(key, value1);
 Date value2 = cache.get(key);
 </code></pre></div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>1.0</dd>
<dt><span class="strong">Author:</span></dt>
  <dd>Greg Luck, Yannis Cosmadopoulos, Brian Oliver</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache">Cache.Entry</a>&lt;<a href="../../javax/cache/Cache.Entry.html" title="type parameter in Cache.Entry">K</a>,<a href="../../javax/cache/Cache.Entry.html" title="type parameter in Cache.Entry">V</a>&gt;</strong></code>
<div class="block">A cache entry (key-value pair).</div>
</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="../../javax/cache/Cache.html#clear()">clear</a></strong>()</code>
<div class="block">Clears the contents of the cache, without notifying listeners or
 <a href="../../javax/cache/integration/CacheWriter.html" title="interface in javax.cache.integration"><code>CacheWriter</code></a>s.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#close()">close</a></strong>()</code>
<div class="block">Closing a <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a> signals to the <a href="../../javax/cache/CacheManager.html" title="interface in javax.cache"><code>CacheManager</code></a> that produced or
 owns the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a> that it should no longer be managed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#containsKey(K)">containsKey</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key)</code>
<div class="block">Determines if the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a> contains an entry for the specified key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#deregisterCacheEntryListener(javax.cache.configuration.CacheEntryListenerConfiguration)">deregisterCacheEntryListener</a></strong>(<a href="../../javax/cache/configuration/CacheEntryListenerConfiguration.html" title="interface in javax.cache.configuration">CacheEntryListenerConfiguration</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&nbsp;cacheEntryListenerConfiguration)</code>
<div class="block">Deregisters a listener, using the
 <a href="../../javax/cache/configuration/CacheEntryListenerConfiguration.html" title="interface in javax.cache.configuration"><code>CacheEntryListenerConfiguration</code></a> that was used to register it.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a></code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#get(K)">get</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key)</code>
<div class="block">Gets an entry from the cache.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#getAll(java.util.Set)">getAll</a></strong>(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&gt;&nbsp;keys)</code>
<div class="block">Gets a collection of entries from the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a>, returning them as
 <a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a> of the values associated with the set of keys requested.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a></code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#getAndPut(K, V)">getAndPut</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
         <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</code>
<div class="block">Associates the specified value with the specified key in this cache,
 returning an existing value if one existed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a></code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#getAndRemove(K)">getAndRemove</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key)</code>
<div class="block">Atomically removes the entry for a key only if currently mapped to some
 value.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a></code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#getAndReplace(K, V)">getAndReplace</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
             <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</code>
<div class="block">Atomically replaces the value for a given key if and only if there is a
 value currently mapped by the key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../javax/cache/CacheManager.html" title="interface in javax.cache">CacheManager</a></code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#getCacheManager()">getCacheManager</a></strong>()</code>
<div class="block">Gets the <a href="../../javax/cache/CacheManager.html" title="interface in javax.cache"><code>CacheManager</code></a> that owns and manages the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&lt;C extends <a href="../../javax/cache/configuration/Configuration.html" title="interface in javax.cache.configuration">Configuration</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&gt;&nbsp;<br>C</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#getConfiguration(java.lang.Class)">getConfiguration</a></strong>(<a href="http://download.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;C&gt;&nbsp;clazz)</code>
<div class="block">Provides a standard way to access the configuration of a cache using
 JCache configuration or additional proprietary configuration.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#getName()">getName</a></strong>()</code>
<div class="block">Return the name of the cache.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#invoke(K, javax.cache.processor.EntryProcessor, java.lang.Object...)">invoke</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
      <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor">EntryProcessor</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>,T&gt;&nbsp;entryProcessor,
      <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;arguments)</code>
<div class="block">Invokes an <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> against the <a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><code>Cache.Entry</code></a> specified by
 the provided key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/processor/EntryProcessorResult.html" title="interface in javax.cache.processor">EntryProcessorResult</a>&lt;T&gt;&gt;</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#invokeAll(java.util.Set, javax.cache.processor.EntryProcessor, java.lang.Object...)">invokeAll</a></strong>(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&gt;&nbsp;keys,
         <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor">EntryProcessor</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>,T&gt;&nbsp;entryProcessor,
         <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;arguments)</code>
<div class="block">Invokes an <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> against the set of <a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><code>Cache.Entry</code></a>s
 specified by the set of keys.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#isClosed()">isClosed</a></strong>()</code>
<div class="block">Determines whether this Cache instance has been closed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache">Cache.Entry</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&gt;</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#iterator()">iterator</a></strong>()</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#loadAll(java.util.Set, boolean, javax.cache.integration.CompletionListener)">loadAll</a></strong>(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&gt;&nbsp;keys,
       boolean&nbsp;replaceExistingValues,
       <a href="../../javax/cache/integration/CompletionListener.html" title="interface in javax.cache.integration">CompletionListener</a>&nbsp;completionListener)</code>
<div class="block">Asynchronously loads the specified entries into the cache using the
 configured <a href="../../javax/cache/integration/CacheLoader.html" title="interface in javax.cache.integration"><code>CacheLoader</code></a> for the given keys.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#put(K, V)">put</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
   <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</code>
<div class="block">Associates the specified value with the specified key in the cache.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#putAll(java.util.Map)">putAll</a></strong>(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&nbsp;map)</code>
<div class="block">Copies all of the entries from the specified map to the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#putIfAbsent(K, V)">putIfAbsent</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
           <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</code>
<div class="block">Atomically associates the specified key with the given value if it is
 not already associated with a value.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#registerCacheEntryListener(javax.cache.configuration.CacheEntryListenerConfiguration)">registerCacheEntryListener</a></strong>(<a href="../../javax/cache/configuration/CacheEntryListenerConfiguration.html" title="interface in javax.cache.configuration">CacheEntryListenerConfiguration</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&nbsp;cacheEntryListenerConfiguration)</code>
<div class="block">Registers a <a href="../../javax/cache/event/CacheEntryListener.html" title="interface in javax.cache.event"><code>CacheEntryListener</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#remove(K)">remove</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key)</code>
<div class="block">Removes the mapping for a key from this cache if it is present.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#remove(K, V)">remove</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
      <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;oldValue)</code>
<div class="block">Atomically removes the mapping for a key only if currently mapped to the
 given value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#removeAll()">removeAll</a></strong>()</code>
<div class="block">Removes all of the mappings from this cache.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#removeAll(java.util.Set)">removeAll</a></strong>(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&gt;&nbsp;keys)</code>
<div class="block">Removes entries for the specified keys.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#replace(K, V)">replace</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
       <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</code>
<div class="block">Atomically replaces the entry for a key only if currently mapped to some
 value.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#replace(K, V, V)">replace</a></strong>(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
       <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;oldValue,
       <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;newValue)</code>
<div class="block">Atomically replaces the entry for a key only if currently mapped to a
 given value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><strong><a href="../../javax/cache/Cache.html#unwrap(java.lang.Class)">unwrap</a></strong>(<a href="http://download.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>
<div class="block">Provides a standard way to access the underlying concrete caching
 implementation to provide access to further, proprietary features.</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="get(java.lang.Object)">
<!--   -->
</a><a name="get(K)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre><a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;get(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key)</pre>
<div class="block">Gets an entry from the cache.
 <p>
 If the cache is configured to use read-through, and get would return null
 because the entry is missing from the cache, the Cache's <a href="../../javax/cache/integration/CacheLoader.html" title="interface in javax.cache.integration"><code>CacheLoader</code></a>
 is called in an attempt to load the entry.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - the key whose associated value is to be returned</dd>
<dt><span class="strong">Returns:</span></dt><dd>the element, or null, if it does not exist.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the key is null</dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem fetching the value</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd></dl>
</li>
</ul>
<a name="getAll(java.util.Set)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAll</h4>
<pre><a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&nbsp;getAll(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&gt;&nbsp;keys)</pre>
<div class="block">Gets a collection of entries from the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a>, returning them as
 <a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a> of the values associated with the set of keys requested.
 <p>
 If the cache is configured read-through, and a get for a key would
 return null because an entry is missing from the cache, the Cache's
 <a href="../../javax/cache/integration/CacheLoader.html" title="interface in javax.cache.integration"><code>CacheLoader</code></a> is called in an attempt to load the entry. If an
 entry cannot be loaded for a given key, the key will not be present in
 the returned Map.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>keys</code> - The keys whose associated values are to be returned.</dd>
<dt><span class="strong">Returns:</span></dt><dd>A map of entries that were found for the given keys. Keys not found
         in the cache are not in the returned map.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if keys is null or if keys contains a null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem fetching the values</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd></dl>
</li>
</ul>
<a name="containsKey(java.lang.Object)">
<!--   -->
</a><a name="containsKey(K)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsKey</h4>
<pre>boolean&nbsp;containsKey(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key)</pre>
<div class="block">Determines if the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a> contains an entry for the specified key.
 <p>
 More formally, returns <tt>true</tt> if and only if this cache contains a
 mapping for a key <tt>k</tt> such that <tt>key.equals(k)</tt>.
 (There can be at most one such mapping.)</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - key whose presence in this cache is to be tested.</dd>
<dt><span class="strong">Returns:</span></dt><dd><tt>true</tt> if this map contains a mapping for the specified key</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - it there is a problem checking the mapping</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true#containsKey(java.lang.Object)" title="class or interface in java.util"><code>Map.containsKey(Object)</code></a></dd></dl>
</li>
</ul>
<a name="loadAll(java.util.Set, boolean, javax.cache.integration.CompletionListener)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadAll</h4>
<pre>void&nbsp;loadAll(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&gt;&nbsp;keys,
           boolean&nbsp;replaceExistingValues,
           <a href="../../javax/cache/integration/CompletionListener.html" title="interface in javax.cache.integration">CompletionListener</a>&nbsp;completionListener)</pre>
<div class="block">Asynchronously loads the specified entries into the cache using the
 configured <a href="../../javax/cache/integration/CacheLoader.html" title="interface in javax.cache.integration"><code>CacheLoader</code></a> for the given keys.
 <p>
 If an entry for a key already exists in the Cache, a value will be loaded
 if and only if <code>replaceExistingValues</code> is true.   If no loader
 is configured for the cache, no objects will be loaded.  If a problem is
 encountered during the retrieving or loading of the objects,
 an exception is provided to the <a href="../../javax/cache/integration/CompletionListener.html" title="interface in javax.cache.integration"><code>CompletionListener</code></a>.  Once the
 operation has completed, the specified CompletionListener is notified.
 <p>
 Implementations may choose to load multiple keys from the provided
 <a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util"><code>Set</code></a> in parallel.  Iteration however must not occur in parallel,
 thus allow for non-thread-safe <a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util"><code>Set</code></a>s to be used.
 <p>
 The thread on which the completion listener is called is implementation
 dependent. An implementation may also choose to serialize calls to
 different CompletionListeners rather than use a thread per
 CompletionListener.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>keys</code> - the keys to load</dd><dd><code>replaceExistingValues</code> - when true existing values in the Cache will
                              be replaced by those loaded from a CacheLoader</dd><dd><code>completionListener</code> - the CompletionListener (may be null)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if keys is null or if keys contains a null.</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - thrown if there is a problem performing the
                               load. This may also be thrown on calling if
                               there are insufficient threads available to
                               perform the load.</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd></dl>
</li>
</ul>
<a name="put(java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="put(K, V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>put</h4>
<pre>void&nbsp;put(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
       <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</pre>
<div class="block">Associates the specified value with the specified key in the cache.
 <p>
 If the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a> previously contained a mapping for the key, the old
 value is replaced by the specified value.  (A cache <tt>c</tt> is said to
 contain a mapping for a key <tt>k</tt> if and only if <a href="../../javax/cache/Cache.html#containsKey(K)"><code>c.containsKey(k)</code></a> would return <tt>true</tt>.)</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - key with which the specified value is to be associated</dd><dd><code>value</code> - value to be associated with the specified key</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null or if value is null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem doing the put</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true#put(K, V)" title="class or interface in java.util"><code>Map.put(Object, Object)</code></a>, 
<a href="../../javax/cache/Cache.html#getAndPut(K, V)"><code>getAndPut(Object, Object)</code></a>, 
<a href="../../javax/cache/Cache.html#getAndReplace(K, V)"><code>getAndReplace(Object, Object)</code></a>, 
<a href="../../javax/cache/integration/CacheWriter.html#write(javax.cache.Cache.Entry)"><code>CacheWriter.write(javax.cache.Cache.Entry&lt;? extends K, ? extends V&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="getAndPut(java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="getAndPut(K, V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAndPut</h4>
<pre><a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;getAndPut(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
          <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</pre>
<div class="block">Associates the specified value with the specified key in this cache,
 returning an existing value if one existed.
 <p>
 If the cache previously contained a mapping for
 the key, the old value is replaced by the specified value.  (A cache
 <tt>c</tt> is said to contain a mapping for a key <tt>k</tt> if and only
 if <a href="../../javax/cache/Cache.html#containsKey(K)"><code>c.containsKey(k)</code></a> would return
 <tt>true</tt>.)
 <p>
 The previous value is returned, or null if there was no value associated
 with the key previously.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - key with which the specified value is to be associated</dd><dd><code>value</code> - value to be associated with the specified key</dd>
<dt><span class="strong">Returns:</span></dt><dd>the value associated with the key at the start of the operation or
         null if none was associated</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null or if value is null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem doing the put</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/Cache.html#put(K, V)"><code>put(Object, Object)</code></a>, 
<a href="../../javax/cache/Cache.html#getAndReplace(K, V)"><code>getAndReplace(Object, Object)</code></a>, 
<a href="../../javax/cache/integration/CacheWriter.html#write(javax.cache.Cache.Entry)"><code>CacheWriter.write(javax.cache.Cache.Entry&lt;? extends K, ? extends V&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="putAll(java.util.Map)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putAll</h4>
<pre>void&nbsp;putAll(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&nbsp;map)</pre>
<div class="block">Copies all of the entries from the specified map to the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a>.
 <p>
 The effect of this call is equivalent to that of calling
 <a href="../../javax/cache/Cache.html#put(K, V)"><code>put(k, v)</code></a> on this cache once for each mapping
 from key <tt>k</tt> to value <tt>v</tt> in the specified map.
 <p>
 The order in which the individual puts occur is undefined.
 <p>
 The behavior of this operation is undefined if entries in the cache
 corresponding to entries in the map are modified or removed while this
 operation is in progress. or if map is modified while the operation is in
 progress.
 <p>
 In Default Consistency mode, individual puts occur atomically but not
 the entire putAll.  Listeners may observe individual updates.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>map</code> - mappings to be stored in this cache</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if map is null or if map contains null keys
                               or values.</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem doing the put.</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/integration/CacheWriter.html#writeAll(java.util.Collection)"><code>CacheWriter.writeAll(java.util.Collection&lt;javax.cache.Cache.Entry&lt;? extends K, ? extends V&gt;&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="putIfAbsent(java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="putIfAbsent(K, V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putIfAbsent</h4>
<pre>boolean&nbsp;putIfAbsent(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
                  <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</pre>
<div class="block">Atomically associates the specified key with the given value if it is
 not already associated with a value.
 <p>
 This is equivalent to:
 <pre><code>
 if (!cache.containsKey(key)) {}
   cache.put(key, value);
   return true;
 } else {
   return false;
 }
 </code></pre>
 except that the action is performed atomically.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - key with which the specified value is to be associated</dd><dd><code>value</code> - value to be associated with the specified key</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if a value was set.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null or value is null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem doing the put</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/integration/CacheWriter.html#write(javax.cache.Cache.Entry)"><code>CacheWriter.write(javax.cache.Cache.Entry&lt;? extends K, ? extends V&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="remove(java.lang.Object)">
<!--   -->
</a><a name="remove(K)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>boolean&nbsp;remove(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key)</pre>
<div class="block">Removes the mapping for a key from this cache if it is present.
 <p>
 More formally, if this cache contains a mapping from key <tt>k</tt> to
 value <tt>v</tt> such that
 <code>(key==null ?  k==null : key.equals(k))</code>, that mapping is removed.
 (The cache can contain at most one such mapping.)
 
 <p>Returns <tt>true</tt> if this cache previously associated the key,
 or <tt>false</tt> if the cache contained no mapping for the key.
 <p>
 The cache will not contain a mapping for the specified key once the
 call returns.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - key whose mapping is to be removed from the cache</dd>
<dt><span class="strong">Returns:</span></dt><dd>returns false if there was no matching key</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem doing the remove</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/integration/CacheWriter.html#delete(java.lang.Object)"><code>CacheWriter.delete(java.lang.Object)</code></a></dd></dl>
</li>
</ul>
<a name="remove(java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="remove(K, V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>boolean&nbsp;remove(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
             <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;oldValue)</pre>
<div class="block">Atomically removes the mapping for a key only if currently mapped to the
 given value.
 <p>
 This is equivalent to:
 <pre><code>
 if (cache.containsKey(key) &amp;&amp; equals(cache.get(key), oldValue) {
   cache.remove(key);
   return true;
 } else {
   return false;
 }
 </code></pre>
 except that the action is performed atomically.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - key whose mapping is to be removed from the cache</dd><dd><code>oldValue</code> - value expected to be associated with the specified key</dd>
<dt><span class="strong">Returns:</span></dt><dd>returns false if there was no matching key</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem doing the remove</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/integration/CacheWriter.html#delete(java.lang.Object)"><code>CacheWriter.delete(java.lang.Object)</code></a></dd></dl>
</li>
</ul>
<a name="getAndRemove(java.lang.Object)">
<!--   -->
</a><a name="getAndRemove(K)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAndRemove</h4>
<pre><a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;getAndRemove(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key)</pre>
<div class="block">Atomically removes the entry for a key only if currently mapped to some
 value.
 <p>
 This is equivalent to:
 <pre><code>
 if (cache.containsKey(key)) {
   V oldValue = cache.get(key);
   cache.remove(key);
   return oldValue;
 } else {
   return null;
 }
 </code></pre>
 except that the action is performed atomically.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - key with which the specified value is associated</dd>
<dt><span class="strong">Returns:</span></dt><dd>the value if one existed or null if no mapping existed for this key</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the specified key or value is null.</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem during the remove</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/integration/CacheWriter.html#delete(java.lang.Object)"><code>CacheWriter.delete(java.lang.Object)</code></a></dd></dl>
</li>
</ul>
<a name="replace(java.lang.Object,java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="replace(K, V, V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre>boolean&nbsp;replace(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
              <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;oldValue,
              <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;newValue)</pre>
<div class="block">Atomically replaces the entry for a key only if currently mapped to a
 given value.
 <p>
 This is equivalent to:
 <pre><code>
 if (cache.containsKey(key) &amp;&amp; equals(cache.get(key), oldValue)) {
  cache.put(key, newValue);
 return true;
 } else {
  return false;
 }
 </code></pre>
 except that the action is performed atomically.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - key with which the specified value is associated</dd><dd><code>oldValue</code> - value expected to be associated with the specified key</dd><dd><code>newValue</code> - value to be associated with the specified key</dd>
<dt><span class="strong">Returns:</span></dt><dd><tt>true</tt> if the value was replaced</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null or if the values are null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem during the replace</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/integration/CacheWriter.html#write(javax.cache.Cache.Entry)"><code>CacheWriter.write(javax.cache.Cache.Entry&lt;? extends K, ? extends V&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="replace(java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="replace(K, V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre>boolean&nbsp;replace(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
              <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</pre>
<div class="block">Atomically replaces the entry for a key only if currently mapped to some
 value.
 <p>
 This is equivalent to
 <pre><code>
 if (cache.containsKey(key)) {
   cache.put(key, value);
   return true;
 } else {
   return false;
 }</code></pre>
 except that the action is performed atomically.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - the key with which the specified value is associated</dd><dd><code>value</code> - the value to be associated with the specified key</dd>
<dt><span class="strong">Returns:</span></dt><dd><tt>true</tt> if the value was replaced</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null or if value is null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem during the replace</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/Cache.html#getAndReplace(K, V)"><code>getAndReplace(Object, Object)</code></a>, 
<a href="../../javax/cache/integration/CacheWriter.html#write(javax.cache.Cache.Entry)"><code>CacheWriter.write(javax.cache.Cache.Entry&lt;? extends K, ? extends V&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="getAndReplace(java.lang.Object,java.lang.Object)">
<!--   -->
</a><a name="getAndReplace(K, V)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAndReplace</h4>
<pre><a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;getAndReplace(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
              <a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&nbsp;value)</pre>
<div class="block">Atomically replaces the value for a given key if and only if there is a
 value currently mapped by the key.
 <p>
 This is equivalent to
 <pre><code>
 if (cache.containsKey(key)) {
   V oldValue = cache.get(key);
   cache.put(key, value);
   return oldValue;
 } else {
   return null;
 }
 </code></pre>
 except that the action is performed atomically.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - key with which the specified value is associated</dd><dd><code>value</code> - value to be associated with the specified key</dd>
<dt><span class="strong">Returns:</span></dt><dd>the previous value associated with the specified key, or
         <tt>null</tt> if there was no mapping for the key.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null or if value is null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem during the replace</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#replace(K, V)" title="class or interface in java.util.concurrent"><code>ConcurrentMap.replace(Object, Object)</code></a>, 
<a href="../../javax/cache/integration/CacheWriter.html#write(javax.cache.Cache.Entry)"><code>CacheWriter.write(javax.cache.Cache.Entry&lt;? extends K, ? extends V&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="removeAll(java.util.Set)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
<pre>void&nbsp;removeAll(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&gt;&nbsp;keys)</pre>
<div class="block">Removes entries for the specified keys.
 <p>
 The order in which the individual entries are removed is undefined.
 <p>
 For every entry in the key set, the following are called:
 <ul>
   <li>any registered <a href="../../javax/cache/event/CacheEntryRemovedListener.html" title="interface in javax.cache.event"><code>CacheEntryRemovedListener</code></a>s</li>
   <li>if the cache is a write-through cache, the <a href="../../javax/cache/integration/CacheWriter.html" title="interface in javax.cache.integration"><code>CacheWriter</code></a></li>
 </ul>
 If the key set is empty, the <a href="../../javax/cache/integration/CacheWriter.html" title="interface in javax.cache.integration"><code>CacheWriter</code></a> is not called.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>keys</code> - the keys to remove</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if keys is null or if it contains a null key</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem during the remove</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/integration/CacheWriter.html#deleteAll(java.util.Collection)"><code>CacheWriter.deleteAll(java.util.Collection&lt;?&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="removeAll()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
<pre>void&nbsp;removeAll()</pre>
<div class="block">Removes all of the mappings from this cache.
 <p>
 The order that the individual entries are removed is undefined.
 <p>
 For every mapping that exists the following are called:
 <ul>
   <li>any registered <a href="../../javax/cache/event/CacheEntryRemovedListener.html" title="interface in javax.cache.event"><code>CacheEntryRemovedListener</code></a>s</li>
   <li>if the cache is a write-through cache, the <a href="../../javax/cache/integration/CacheWriter.html" title="interface in javax.cache.integration"><code>CacheWriter</code></a></li>
 </ul>
 If the cache is empty, the <a href="../../javax/cache/integration/CacheWriter.html" title="interface in javax.cache.integration"><code>CacheWriter</code></a> is not called.
 <p>
 This is potentially an expensive operation as listeners are invoked.
 Use <a href="../../javax/cache/Cache.html#clear()"><code>clear()</code></a> to avoid this.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem during the remove</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/Cache.html#clear()"><code>clear()</code></a>, 
<a href="../../javax/cache/integration/CacheWriter.html#deleteAll(java.util.Collection)"><code>CacheWriter.deleteAll(java.util.Collection&lt;?&gt;)</code></a></dd></dl>
</li>
</ul>
<a name="clear()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre>void&nbsp;clear()</pre>
<div class="block">Clears the contents of the cache, without notifying listeners or
 <a href="../../javax/cache/integration/CacheWriter.html" title="interface in javax.cache.integration"><code>CacheWriter</code></a>s.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="../../javax/cache/CacheException.html" title="class in javax.cache">CacheException</a></code> - if there is a problem during the clear</dd></dl>
</li>
</ul>
<a name="getConfiguration(java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfiguration</h4>
<pre>&lt;C extends <a href="../../javax/cache/configuration/Configuration.html" title="interface in javax.cache.configuration">Configuration</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&gt;&nbsp;C&nbsp;getConfiguration(<a href="http://download.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;C&gt;&nbsp;clazz)</pre>
<div class="block">Provides a standard way to access the configuration of a cache using
 JCache configuration or additional proprietary configuration.
 <p>
 The returned value must be immutable.
 <p>
 If the provider's implementation does not support the specified class,
 the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> is thrown.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - the configuration interface or class to return. This includes
              <a href="../../javax/cache/configuration/Configuration.html" title="interface in javax.cache.configuration"><code>Configuration</code></a>.class and
              <a href="../../javax/cache/configuration/CompleteConfiguration.html" title="interface in javax.cache.configuration"><code>CompleteConfiguration</code></a>s.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the requested implementation of <a href="../../javax/cache/configuration/Configuration.html" title="interface in javax.cache.configuration"><code>Configuration</code></a></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the caching provider doesn't support
                                  the specified class.</dd></dl>
</li>
</ul>
<a name="invoke(java.lang.Object,javax.cache.processor.EntryProcessor,java.lang.Object[])">
<!--   -->
</a><a name="invoke(K, javax.cache.processor.EntryProcessor, java.lang.Object...)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invoke</h4>
<pre>&lt;T&gt;&nbsp;T&nbsp;invoke(<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&nbsp;key,
           <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor">EntryProcessor</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>,T&gt;&nbsp;entryProcessor,
           <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;arguments)
         throws <a href="../../javax/cache/processor/EntryProcessorException.html" title="class in javax.cache.processor">EntryProcessorException</a></pre>
<div class="block">Invokes an <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> against the <a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><code>Cache.Entry</code></a> specified by
 the provided key. If an <a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><code>Cache.Entry</code></a> does not exist for the specified key,
 an attempt is made to load it (if a loader is configured) or a surrogate
 <a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><code>Cache.Entry</code></a>, consisting of the key with a null value is used instead.
 <p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - the key to the entry</dd><dd><code>entryProcessor</code> - the <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> to invoke</dd><dd><code>arguments</code> - additional arguments to pass to the
                       <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a></dd>
<dt><span class="strong">Returns:</span></dt><dd>the result of the processing, if any, defined by the
         <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> implementation</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key or <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> is null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd>
<dd><code><a href="../../javax/cache/processor/EntryProcessorException.html" title="class in javax.cache.processor">EntryProcessorException</a></code> - if an exception is thrown by the <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a>, a Caching Implementation
                                 must wrap any <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><code>Exception</code></a> thrown
                                 wrapped in an <a href="../../javax/cache/processor/EntryProcessorException.html" title="class in javax.cache.processor"><code>EntryProcessorException</code></a>.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a></dd></dl>
</li>
</ul>
<a name="invokeAll(java.util.Set, javax.cache.processor.EntryProcessor, java.lang.Object...)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeAll</h4>
<pre>&lt;T&gt;&nbsp;<a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/processor/EntryProcessorResult.html" title="interface in javax.cache.processor">EntryProcessorResult</a>&lt;T&gt;&gt;&nbsp;invokeAll(<a href="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;? extends <a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>&gt;&nbsp;keys,
                                           <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor">EntryProcessor</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>,T&gt;&nbsp;entryProcessor,
                                           <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;arguments)</pre>
<div class="block">Invokes an <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> against the set of <a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><code>Cache.Entry</code></a>s
 specified by the set of keys.
 <p>
 If an <a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><code>Cache.Entry</code></a> does not exist for the specified key, an attempt is made
 to load it (if a loader is configured) or a surrogate <a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><code>Cache.Entry</code></a>,
 consisting of the key and a value of null is provided.
 <p>
 The order that the entries for the keys are processed is undefined.
 Implementations may choose to process the entries in any order, including
 concurrently.  Furthermore there is no guarantee implementations will
 use the same <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> instance to process each entry, as
 the case may be in a non-local cache topology.
 <p>
 The result of executing the <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> is returned as a
 <a href="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a> of <a href="../../javax/cache/processor/EntryProcessorResult.html" title="interface in javax.cache.processor"><code>EntryProcessorResult</code></a>s, one result per key.  Should the
 <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> or Caching implementation throw an exception, the
 exception is wrapped and re-thrown when a call to
 <a href="../../javax/cache/processor/EntryProcessorResult.html#get()"><code>EntryProcessorResult.get()</code></a> is made.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>keys</code> - the set of keys for entries to process</dd><dd><code>entryProcessor</code> - the <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> to invoke</dd><dd><code>arguments</code> - additional arguments to pass to the
                       <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a></dd>
<dt><span class="strong">Returns:</span></dt><dd>the map of <a href="../../javax/cache/processor/EntryProcessorResult.html" title="interface in javax.cache.processor"><code>EntryProcessorResult</code></a>s of the processing per key,
 if any, defined by the <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> implementation.  No mappings
 will be returned for <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a>s that return a
 <code>null</code> value for a key.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if keys or <a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a> are null</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the implementation is configured to perform
                               runtime-type-checking, and the key or value
                               types are incompatible with those that have been
                               configured for the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/processor/EntryProcessor.html" title="interface in javax.cache.processor"><code>EntryProcessor</code></a></dd></dl>
</li>
</ul>
<a name="getName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre><a href="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
<div class="block">Return the name of the cache.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the name of the cache.</dd></dl>
</li>
</ul>
<a name="getCacheManager()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCacheManager</h4>
<pre><a href="../../javax/cache/CacheManager.html" title="interface in javax.cache">CacheManager</a>&nbsp;getCacheManager()</pre>
<div class="block">Gets the <a href="../../javax/cache/CacheManager.html" title="interface in javax.cache"><code>CacheManager</code></a> that owns and manages the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a>.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the manager or <code>null</code> if the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a> is not
         managed</dd></dl>
</li>
</ul>
<a name="close()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close()</pre>
<div class="block">Closing a <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a> signals to the <a href="../../javax/cache/CacheManager.html" title="interface in javax.cache"><code>CacheManager</code></a> that produced or
 owns the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a> that it should no longer be managed. At this
 point in time the <a href="../../javax/cache/CacheManager.html" title="interface in javax.cache"><code>CacheManager</code></a>:
 <ul>
 <li>must close and release all resources being coordinated on behalf of the
 Cache by the <a href="../../javax/cache/CacheManager.html" title="interface in javax.cache"><code>CacheManager</code></a>. This includes calling the <code>close
 </code> method on configured <a href="../../javax/cache/integration/CacheLoader.html" title="interface in javax.cache.integration"><code>CacheLoader</code></a>,
 <a href="../../javax/cache/integration/CacheWriter.html" title="interface in javax.cache.integration"><code>CacheWriter</code></a>, registered <a href="../../javax/cache/event/CacheEntryListener.html" title="interface in javax.cache.event"><code>CacheEntryListener</code></a>s and
 <a href="../../javax/cache/expiry/ExpiryPolicy.html" title="interface in javax.cache.expiry"><code>ExpiryPolicy</code></a> instances that implement the java.io.Closeable
 interface.
 <li>prevent events being delivered to configured <a href="../../javax/cache/event/CacheEntryListener.html" title="interface in javax.cache.event"><code>CacheEntryListener</code></a>s
 registered on the <a href="../../javax/cache/Cache.html" title="interface in javax.cache"><code>Cache</code></a>
 </li>
 <li>not return the name of the Cache when the CacheManager getCacheNames()
 method is called</li>
 </ul>
 Once closed any attempt to use an operational method on a Cache will throw an
 <a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang"><code>IllegalStateException</code></a>.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/io/Closeable.html?is-external=true#close()" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="http://download.oracle.com/javase/6/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang">SecurityException</a></code> - when the operation could not be performed
                           due to the current security settings</dd></dl>
</li>
</ul>
<a name="isClosed()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isClosed</h4>
<pre>boolean&nbsp;isClosed()</pre>
<div class="block">Determines whether this Cache instance has been closed. A Cache is
 considered closed if;
 <ol>
 <li>the <a href="../../javax/cache/Cache.html#close()"><code>close()</code></a> method has been called</li>
 <li>the associated <a href="../../javax/cache/Cache.html#getCacheManager()"><code>getCacheManager()</code></a> has been closed, or</li>
 <li>the Cache has been removed from the associated
 <a href="../../javax/cache/Cache.html#getCacheManager()"><code>getCacheManager()</code></a></li>
 </ol>
 <p>
 This method generally cannot be called to determine whether a Cache instance
 is valid or invalid. A typical client can determine that a Cache is invalid
 by catching any exceptions that might be thrown when an operation is
 attempted.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>true if this Cache instance is closed; false if it is still open</dd></dl>
</li>
</ul>
<a name="unwrap(java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unwrap</h4>
<pre>&lt;T&gt;&nbsp;T&nbsp;unwrap(<a href="http://download.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
<div class="block">Provides a standard way to access the underlying concrete caching
 implementation to provide access to further, proprietary features.
 <p>
 If the provider's implementation does not support the specified class,
 the <a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> is thrown.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - the proprietary class or interface of the underlying concrete
              cache. It is this type that is returned.</dd>
<dt><span class="strong">Returns:</span></dt><dd>an instance of the underlying concrete cache</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the caching provider doesn't support
                                  the specified class.</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang">SecurityException</a></code> - when the operation could not be performed
                                  due to the current security settings</dd></dl>
</li>
</ul>
<a name="registerCacheEntryListener(javax.cache.configuration.CacheEntryListenerConfiguration)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerCacheEntryListener</h4>
<pre>void&nbsp;registerCacheEntryListener(<a href="../../javax/cache/configuration/CacheEntryListenerConfiguration.html" title="interface in javax.cache.configuration">CacheEntryListenerConfiguration</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&nbsp;cacheEntryListenerConfiguration)</pre>
<div class="block">Registers a <a href="../../javax/cache/event/CacheEntryListener.html" title="interface in javax.cache.event"><code>CacheEntryListener</code></a>. The supplied
 <a href="../../javax/cache/configuration/CacheEntryListenerConfiguration.html" title="interface in javax.cache.configuration"><code>CacheEntryListenerConfiguration</code></a> is used to instantiate a listener
 and apply it to those events specified in the configuration.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>cacheEntryListenerConfiguration</code> - a factory and related configuration
         for creating the listener</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - is the same CacheEntryListenerConfiguration
                                  is used more than once</dd>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../javax/cache/event/CacheEntryListener.html" title="interface in javax.cache.event"><code>CacheEntryListener</code></a></dd></dl>
</li>
</ul>
<a name="deregisterCacheEntryListener(javax.cache.configuration.CacheEntryListenerConfiguration)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deregisterCacheEntryListener</h4>
<pre>void&nbsp;deregisterCacheEntryListener(<a href="../../javax/cache/configuration/CacheEntryListenerConfiguration.html" title="interface in javax.cache.configuration">CacheEntryListenerConfiguration</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&nbsp;cacheEntryListenerConfiguration)</pre>
<div class="block">Deregisters a listener, using the
 <a href="../../javax/cache/configuration/CacheEntryListenerConfiguration.html" title="interface in javax.cache.configuration"><code>CacheEntryListenerConfiguration</code></a> that was used to register it.
 <p>
 Both listeners registered at configuration time,
 and those created at runtime with <a href="../../javax/cache/Cache.html#registerCacheEntryListener(javax.cache.configuration.CacheEntryListenerConfiguration)"><code>registerCacheEntryListener(javax.cache.configuration.CacheEntryListenerConfiguration&lt;K, V&gt;)</code></a> can
 be deregistered.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>cacheEntryListenerConfiguration</code> - the factory and related configuration
         that was used to create the
         listener</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></dd></dl>
</li>
</ul>
<a name="iterator()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>iterator</h4>
<pre><a href="http://download.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache">Cache.Entry</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&gt;&nbsp;iterator()</pre>
<div class="block">
 <p>
 The ordering of iteration over entries is undefined.
 <p>
 During iteration, any entries that are a). read will have their appropriate
 CacheEntryReadListeners notified and b). removed will have their appropriate
 CacheEntryRemoveListeners notified.
 <p>
 <a href="http://download.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true#next()" title="class or interface in java.util"><code>Iterator.next()</code></a> may return null if the entry is no
 longer present, has expired or has been evicted.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/Iterable.html?is-external=true#iterator()" title="class or interface in java.lang">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../javax/cache/Cache.Entry.html" title="interface in javax.cache">Cache.Entry</a>&lt;<a href="../../javax/cache/Cache.html" title="type parameter in Cache">K</a>,<a href="../../javax/cache/Cache.html" title="type parameter in Cache">V</a>&gt;&gt;</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the cache is <a href="../../javax/cache/Cache.html#isClosed()"><code>isClosed()</code></a></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/Cache.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-all.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="../../javax/cache/Cache.Entry.html" title="interface in javax.cache"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?javax/cache/Cache.html" target="_top">Frames</a></li>
<li><a href="Cache.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><a href="#nested_class_summary">Nested</a>&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; 2014. All Rights Reserved.</small></p>
</body>
</html>
