blob: c77415becf787ce1591e9675ea635e819adfa080 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 12 17:38:31 PST 2008 -->
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>
ConcurrentQueryCache (OpenJPA 1.0.2 API)
</TITLE>
<META NAME="keywords" CONTENT="org.apache.openjpa.datacache.ConcurrentQueryCache class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="ConcurrentQueryCache (OpenJPA 1.0.2 API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ConcurrentQueryCache.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/openjpa/datacache/ConcurrentQueryCache.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ConcurrentQueryCache.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.openjpa.datacache.AbstractQueryCache">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.openjpa.datacache</FONT>
<BR>
Class ConcurrentQueryCache</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager</A>
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">org.apache.openjpa.datacache.AbstractQueryCache</A>
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.openjpa.datacache.ConcurrentQueryCache</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>, <A HREF="../../../../org/apache/openjpa/datacache/TypesChangedListener.html" title="interface in org.apache.openjpa.datacache">TypesChangedListener</A>, <A HREF="../../../../org/apache/openjpa/event/RemoteCommitListener.html" title="interface in org.apache.openjpa.event">RemoteCommitListener</A>, <A HREF="../../../../org/apache/openjpa/lib/conf/Configurable.html" title="interface in org.apache.openjpa.lib.conf">Configurable</A>, <A HREF="../../../../org/apache/openjpa/lib/util/Closeable.html" title="interface in org.apache.openjpa.lib.util">Closeable</A>, <A HREF="../../../../org/apache/openjpa/lib/util/EventManager.html" title="interface in org.apache.openjpa.lib.util">EventManager</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>ConcurrentQueryCache</B><DT>extends <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A><DT>implements <A HREF="../../../../org/apache/openjpa/event/RemoteCommitListener.html" title="interface in org.apache.openjpa.event">RemoteCommitListener</A></DL>
</PRE>
<P>
A <A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache"><CODE>QueryCache</CODE></A> implementation that is optimized for concurrent
access. When the cache fill up, values to remove from the cache are chosen
randomly. Due to race conditions, it is possible that a get call might not
retur a cached instance if that instance is being transferred between
internal datastructures.
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>0.4.1</DD>
</DL>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.datacache.AbstractQueryCache"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.openjpa.datacache.<A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#conf">conf</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#log">log</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.openjpa.lib.util.concurrent.<A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#_listeners">_listeners</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#ConcurrentQueryCache()">ConcurrentQueryCache</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#clearInternal()">clearInternal</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clear the cache.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#getCacheMap()">getCacheMap</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the underlying <A HREF="../../../../org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util"><CODE>CacheMap</CODE></A> that this cache is using.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#getCacheSize()">getCacheSize</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the maximum number of unpinned objects to keep hard
references to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#getInternal(org.apache.openjpa.datacache.QueryKey)">getInternal</A></B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the list for the given key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#getSoftReferenceSize()">getSoftReferenceSize</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the maximum number of unpinned objects to keep soft
references to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)">initialize</A></B>(<A HREF="../../../../org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>&nbsp;mgr)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize any resources associated with the given
<A HREF="../../../../org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache"><CODE>DataCacheManager</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#keySet()">keySet</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a threadsafe view of the keys in this cache.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#newCacheMap()">newCacheMap</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the map to use as an internal cache.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#pinInternal(org.apache.openjpa.datacache.QueryKey)">pinInternal</A></B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pin an object to the cache.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#putInternal(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)">putInternal</A></B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk,
<A HREF="../../../../org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A>&nbsp;result)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the given result to the cache, returning the old result under the
given key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#removeInternal(org.apache.openjpa.datacache.QueryKey)">removeInternal</A></B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove the result under the given key from the cache.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#setCacheSize(int)">setCacheSize</A></B>(int&nbsp;size)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the maximum number of unpinned objects to keep hard
references to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#setSoftReferenceSize(int)">setSoftReferenceSize</A></B>(int&nbsp;size)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the maximum number of unpinned objects to keep soft
references to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#unpinInternal(org.apache.openjpa.datacache.QueryKey)">unpinInternal</A></B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unpin an object from the cache.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#writeLock()">writeLock</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtain a write lock on the cache.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/datacache/ConcurrentQueryCache.html#writeUnlock()">writeUnlock</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Release the write lock on the cache.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.openjpa.datacache.AbstractQueryCache"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.openjpa.datacache.<A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#addTypesChangedListener(org.apache.openjpa.datacache.TypesChangedListener)">addTypesChangedListener</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#afterCommit(org.apache.openjpa.event.RemoteCommitEvent)">afterCommit</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#clear()">clear</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#close()">close</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#close(boolean)">close</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#endConfiguration()">endConfiguration</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#fireEvent(java.lang.Object, java.lang.Object)">fireEvent</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#get(org.apache.openjpa.datacache.QueryKey)">get</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#isClosed()">isClosed</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#newListenerCollection()">newListenerCollection</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#onTypesChanged(org.apache.openjpa.datacache.TypesChangedEvent)">onTypesChanged</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#pin(org.apache.openjpa.datacache.QueryKey)">pin</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#put(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)">put</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#remove(org.apache.openjpa.datacache.QueryKey)">remove</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#removeAllInternal(java.util.Collection)">removeAllInternal</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#removeTypesChangedListener(org.apache.openjpa.datacache.TypesChangedListener)">removeTypesChangedListener</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)">setConfiguration</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#startConfiguration()">startConfiguration</A>, <A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#unpin(org.apache.openjpa.datacache.QueryKey)">unpin</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.openjpa.lib.util.concurrent.<A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#addListener(java.lang.Object)">addListener</A>, <A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#fireEvent(java.lang.Object)">fireEvent</A>, <A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#getListeners()">getListeners</A>, <A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#hasListener(java.lang.Object)">hasListener</A>, <A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#hasListeners()">hasListeners</A>, <A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#isFailFast()">isFailFast</A>, <A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#removeListener(java.lang.Object)">removeListener</A>, <A HREF="../../../../org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#setFailFast(boolean)">setFailFast</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.openjpa.event.RemoteCommitListener"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface org.apache.openjpa.event.<A HREF="../../../../org/apache/openjpa/event/RemoteCommitListener.html" title="interface in org.apache.openjpa.event">RemoteCommitListener</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/event/RemoteCommitListener.html#afterCommit(org.apache.openjpa.event.RemoteCommitEvent)">afterCommit</A>, <A HREF="../../../../org/apache/openjpa/event/RemoteCommitListener.html#close()">close</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="ConcurrentQueryCache()"><!-- --></A><H3>
ConcurrentQueryCache</H3>
<PRE>
public <B>ConcurrentQueryCache</B>()</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="getCacheMap()"><!-- --></A><H3>
getCacheMap</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A> <B>getCacheMap</B>()</PRE>
<DL>
<DD>Returns the underlying <A HREF="../../../../org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util"><CODE>CacheMap</CODE></A> that this cache is using.
This is not an unmodifiable view on the map, so care should be taken
with this reference. Implementations should probably not modify the
contents of the cache, but should only use this reference
to obtain cache metrics. Additionally, this map may contain
expired data. Removal of timed-out data is done in a lazy
fashion, so the actual size of the map may be greater than the
number of non-expired query results in cache.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getCacheSize()"><!-- --></A><H3>
getCacheSize</H3>
<PRE>
public int <B>getCacheSize</B>()</PRE>
<DL>
<DD>Returns the maximum number of unpinned objects to keep hard
references to.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setCacheSize(int)"><!-- --></A><H3>
setCacheSize</H3>
<PRE>
public void <B>setCacheSize</B>(int&nbsp;size)</PRE>
<DL>
<DD>Sets the maximum number of unpinned objects to keep hard
references to. If the map contains more unpinned objects than
<code>size</code>, then this method will result in the cache
flushing old values.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getSoftReferenceSize()"><!-- --></A><H3>
getSoftReferenceSize</H3>
<PRE>
public int <B>getSoftReferenceSize</B>()</PRE>
<DL>
<DD>Returns the maximum number of unpinned objects to keep soft
references to. Defaults to <code>-1</code>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setSoftReferenceSize(int)"><!-- --></A><H3>
setSoftReferenceSize</H3>
<PRE>
public void <B>setSoftReferenceSize</B>(int&nbsp;size)</PRE>
<DL>
<DD>Sets the maximum number of unpinned objects to keep soft
references to. If the map contains more soft references than
<code>size</code>, then this method will result in the cache
flushing values.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="initialize(org.apache.openjpa.datacache.DataCacheManager)"><!-- --></A><H3>
initialize</H3>
<PRE>
public void <B>initialize</B>(<A HREF="../../../../org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>&nbsp;mgr)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)">QueryCache</A></CODE></B></DD>
<DD>Initialize any resources associated with the given
<A HREF="../../../../org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache"><CODE>DataCacheManager</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)">initialize</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)">initialize</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="writeLock()"><!-- --></A><H3>
writeLock</H3>
<PRE>
public void <B>writeLock</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html#writeLock()">QueryCache</A></CODE></B></DD>
<DD>Obtain a write lock on the cache.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html#writeLock()">writeLock</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="writeUnlock()"><!-- --></A><H3>
writeUnlock</H3>
<PRE>
public void <B>writeUnlock</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html#writeUnlock()">QueryCache</A></CODE></B></DD>
<DD>Release the write lock on the cache.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html#writeUnlock()">writeUnlock</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="newCacheMap()"><!-- --></A><H3>
newCacheMap</H3>
<PRE>
protected <A HREF="../../../../org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A> <B>newCacheMap</B>()</PRE>
<DL>
<DD>Return the map to use as an internal cache.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getInternal(org.apache.openjpa.datacache.QueryKey)"><!-- --></A><H3>
getInternal</H3>
<PRE>
protected <A HREF="../../../../org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A> <B>getInternal</B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#getInternal(org.apache.openjpa.datacache.QueryKey)">AbstractQueryCache</A></CODE></B></DD>
<DD>Return the list for the given key.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#getInternal(org.apache.openjpa.datacache.QueryKey)">getInternal</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="putInternal(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)"><!-- --></A><H3>
putInternal</H3>
<PRE>
protected <A HREF="../../../../org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A> <B>putInternal</B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk,
<A HREF="../../../../org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A>&nbsp;result)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#putInternal(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)">AbstractQueryCache</A></CODE></B></DD>
<DD>Add the given result to the cache, returning the old result under the
given key.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#putInternal(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)">putInternal</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="removeInternal(org.apache.openjpa.datacache.QueryKey)"><!-- --></A><H3>
removeInternal</H3>
<PRE>
protected <A HREF="../../../../org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A> <B>removeInternal</B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#removeInternal(org.apache.openjpa.datacache.QueryKey)">AbstractQueryCache</A></CODE></B></DD>
<DD>Remove the result under the given key from the cache.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#removeInternal(org.apache.openjpa.datacache.QueryKey)">removeInternal</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="clearInternal()"><!-- --></A><H3>
clearInternal</H3>
<PRE>
protected void <B>clearInternal</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#clearInternal()">AbstractQueryCache</A></CODE></B></DD>
<DD>Clear the cache.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#clearInternal()">clearInternal</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="pinInternal(org.apache.openjpa.datacache.QueryKey)"><!-- --></A><H3>
pinInternal</H3>
<PRE>
protected boolean <B>pinInternal</B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#pinInternal(org.apache.openjpa.datacache.QueryKey)">AbstractQueryCache</A></CODE></B></DD>
<DD>Pin an object to the cache.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#pinInternal(org.apache.openjpa.datacache.QueryKey)">pinInternal</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="unpinInternal(org.apache.openjpa.datacache.QueryKey)"><!-- --></A><H3>
unpinInternal</H3>
<PRE>
protected boolean <B>unpinInternal</B>(<A HREF="../../../../org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>&nbsp;qk)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#unpinInternal(org.apache.openjpa.datacache.QueryKey)">AbstractQueryCache</A></CODE></B></DD>
<DD>Unpin an object from the cache.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#unpinInternal(org.apache.openjpa.datacache.QueryKey)">unpinInternal</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="keySet()"><!-- --></A><H3>
keySet</H3>
<PRE>
protected <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A> <B>keySet</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#keySet()">AbstractQueryCache</A></CODE></B></DD>
<DD>Return a threadsafe view of the keys in this cache. This collection
must be iterable without risk of concurrent modification exceptions.
It does not have to implement contains() efficiently or use set
semantics.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html#keySet()">keySet</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ConcurrentQueryCache.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/openjpa/datacache/ConcurrentQueryCache.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ConcurrentQueryCache.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.openjpa.datacache.AbstractQueryCache">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &copy; 2006-2008 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>