org.apache.tuscany.sca.databinding.util
Class LRUCache<K,V>

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.HashMap<K,V>
          extended by java.util.LinkedHashMap<K,V>
              extended by org.apache.tuscany.sca.databinding.util.LRUCache<K,V>
Type Parameters:
K -
V -
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map<K,V>

public class LRUCache<K,V>
extends java.util.LinkedHashMap<K,V>

A Simple LRU Cache

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Field Summary
protected  int maxCacheSize
           
 
Constructor Summary
LRUCache()
          Default constructor for an LRU Cache The default capacity is 10000
LRUCache(int maximumCacheSize)
          Constructs a LRUCache with a maximum capacity
LRUCache(int initialCapacity, int maximumCacheSize, float loadFactor, boolean accessOrder)
          Constructs an empty LRUCache instance with the specified initial capacity, maximumCacheSize,load factor and ordering mode.
 
Method Summary
 int getMaxCacheSize()
           
protected  boolean removeEldestEntry(java.util.Map.Entry<K,V> eldest)
           
 void setMaxCacheSize(int maxCacheSize)
           
 
Methods inherited from class java.util.LinkedHashMap
clear, containsValue, get
 
Methods inherited from class java.util.HashMap
clone, containsKey, entrySet, isEmpty, keySet, put, putAll, remove, size, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
containsKey, entrySet, equals, hashCode, isEmpty, keySet, put, putAll, remove, size, values
 

Field Detail

maxCacheSize

protected int maxCacheSize
Constructor Detail

LRUCache

public LRUCache()
Default constructor for an LRU Cache The default capacity is 10000


LRUCache

public LRUCache(int maximumCacheSize)
Constructs a LRUCache with a maximum capacity

Parameters:
maximumCacheSize -

LRUCache

public LRUCache(int initialCapacity,
                int maximumCacheSize,
                float loadFactor,
                boolean accessOrder)
Constructs an empty LRUCache instance with the specified initial capacity, maximumCacheSize,load factor and ordering mode.

Parameters:
initialCapacity - the initial capacity.
maximumCacheSize -
loadFactor - the load factor.
accessOrder - the ordering mode - true for access-order, false for insertion-order.
Throws:
java.lang.IllegalArgumentException - if the initial capacity is negative or the load factor is non-positive.
Method Detail

getMaxCacheSize

public int getMaxCacheSize()
Returns:
Returns the maxCacheSize.

setMaxCacheSize

public void setMaxCacheSize(int maxCacheSize)
Parameters:
maxCacheSize - The maxCacheSize to set.

removeEldestEntry

protected boolean removeEldestEntry(java.util.Map.Entry<K,V> eldest)
Overrides:
removeEldestEntry in class java.util.LinkedHashMap<K,V>