Kodo 4.2.0. generated on July 28 2008

kodo.datacache
Class LRUQueryCache

java.lang.Object
  extended by org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager
      extended by org.apache.openjpa.datacache.AbstractQueryCache
          extended by kodo.datacache.LRUQueryCache
All Implemented Interfaces:
Serializable, QueryCache, TypesChangedListener, RemoteCommitListener, Configurable, Closeable, EventManager

public class LRUQueryCache
extends AbstractQueryCache
implements RemoteCommitListener

An lru-based query cache.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.openjpa.datacache.AbstractQueryCache
conf, log
 
Fields inherited from class org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager
_listeners
 
Constructor Summary
LRUQueryCache()
           
 
Method Summary
protected  void clearInternal()
           
 CacheMap getCacheMap()
          Returns the underlying CacheMap that this LRUQueryCache is using.
 int getCacheSize()
          Returns the maximum number of unpinned objects to keep hard references to.
protected  QueryResult getInternal(QueryKey qk)
           
 int getSoftReferenceSize()
          Returns the maximum number of unpinned objects to keep soft references to.
 void initialize(DataCacheManager mgr)
           
protected  Collection keySet()
           
protected  boolean pinInternal(QueryKey qk)
           
protected  QueryResult putInternal(QueryKey qk, QueryResult result)
           
protected  QueryResult removeInternal(QueryKey qk)
           
 void setCacheSize(int size)
          Sets the maximum number of unpinned objects to keep hard references to.
 void setSoftReferenceSize(int size)
          Sets the maximum number of unpinned objects to keep soft references to.
protected  boolean unpinInternal(QueryKey qk)
           
 void writeLock()
           
 void writeUnlock()
           
 
Methods inherited from class org.apache.openjpa.datacache.AbstractQueryCache
addTypesChangedListener, afterCommit, clear, close, close, endConfiguration, fireEvent, get, isClosed, newListenerCollection, onTypesChanged, pin, put, remove, removeAllInternal, removeTypesChangedListener, setConfiguration, startConfiguration, unpin
 
Methods inherited from class org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager
addListener, fireEvent, getListeners, hasListener, hasListeners, isFailFast, removeListener, setFailFast
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.openjpa.event.RemoteCommitListener
afterCommit, close
 

Constructor Detail

LRUQueryCache

public LRUQueryCache()
Method Detail

getCacheMap

public CacheMap getCacheMap()
Returns the underlying CacheMap that this LRUQueryCache is using. This is not an unmodifiable view on the map, so care should be taken with this reference. Implementations should probably not mess with 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.


getCacheSize

public int getCacheSize()
Returns the maximum number of unpinned objects to keep hard references to.


setCacheSize

public void setCacheSize(int size)
Sets the maximum number of unpinned objects to keep hard references to. If the map contains more unpinned objects than size, then this method will result in the cache flushing old values.


getSoftReferenceSize

public int getSoftReferenceSize()
Returns the maximum number of unpinned objects to keep soft references to. Defaults to -1.


setSoftReferenceSize

public void setSoftReferenceSize(int size)
Sets the maximum number of unpinned objects to keep soft references to. If the map contains more soft references than size, then this method will result in the cache flushing values.


initialize

public void initialize(DataCacheManager mgr)
Specified by:
initialize in interface QueryCache
Overrides:
initialize in class AbstractQueryCache

writeLock

public void writeLock()
Specified by:
writeLock in interface QueryCache

writeUnlock

public void writeUnlock()
Specified by:
writeUnlock in interface QueryCache

getInternal

protected QueryResult getInternal(QueryKey qk)
Specified by:
getInternal in class AbstractQueryCache

putInternal

protected QueryResult putInternal(QueryKey qk,
                                  QueryResult result)
Specified by:
putInternal in class AbstractQueryCache

removeInternal

protected QueryResult removeInternal(QueryKey qk)
Specified by:
removeInternal in class AbstractQueryCache

clearInternal

protected void clearInternal()
Specified by:
clearInternal in class AbstractQueryCache

pinInternal

protected boolean pinInternal(QueryKey qk)
Specified by:
pinInternal in class AbstractQueryCache

unpinInternal

protected boolean unpinInternal(QueryKey qk)
Specified by:
unpinInternal in class AbstractQueryCache

keySet

protected Collection keySet()
Specified by:
keySet in class AbstractQueryCache

Kodo 4.2.0. generated on July 28 2008

Copyright 2001-2006 BEA Systems, Inc. All Rights Reserved.