com.caucho.util
Class WeakLruCache<K,V>

java.lang.Object
  extended by com.caucho.util.WeakLruCache<K,V>

public class WeakLruCache<K,V>
extends java.lang.Object

Fixed length cache with a LRU replacement policy. If cache items implement CacheListener, they will be informed when they're removed from the cache.

Null keys are not allowed. LruCache is synchronized.


Constructor Summary
WeakLruCache(int initialCapacity)
          Create the LRU cache with a specific capacity.
 
Method Summary
 void clear()
          Clears the cache
 V get(K key)
          Get an item from the cache and make it most recently used.
 java.util.Iterator<K> keys()
          Returns the keys stored in the cache
 java.util.Iterator<K> keys(java.util.Iterator<K> oldIter)
          Returns keys stored in the cache using an old iterator
 V put(K key, V value)
          Puts a new item in the cache.
 V remove(K key)
          Removes an item from the cache
 boolean removeTail()
          Remove the last item in the LRU
 int size()
          Returns the current number of entries in the cache.
 java.util.Iterator<V> values()
          Returns the values in the cache
 java.util.Iterator<V> values(java.util.Iterator<V> oldIter)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WeakLruCache

public WeakLruCache(int initialCapacity)
Create the LRU cache with a specific capacity.

Parameters:
initialCapacity - minimum capacity of the cache
Method Detail

size

public int size()
Returns the current number of entries in the cache.


clear

public void clear()
Clears the cache


get

public V get(K key)
Get an item from the cache and make it most recently used.

Parameters:
key - key to lookup the item
Returns:
the matching object in the cache

put

public V put(K key,
             V value)
Puts a new item in the cache. If the cache is full, remove the LRU item.

Parameters:
key - key to store data
value - value to be stored
Returns:
old value stored under the key

removeTail

public boolean removeTail()
Remove the last item in the LRU


remove

public V remove(K key)
Removes an item from the cache

Parameters:
key - the key to remove
Returns:
the value removed

keys

public java.util.Iterator<K> keys()
Returns the keys stored in the cache


keys

public java.util.Iterator<K> keys(java.util.Iterator<K> oldIter)
Returns keys stored in the cache using an old iterator


values

public java.util.Iterator<V> values()
Returns the values in the cache


values

public java.util.Iterator<V> values(java.util.Iterator<V> oldIter)