org.apache.openjpa.lib.util
Class LRUMap

java.lang.Object
  extended by java.util.AbstractMap
      extended by org.apache.commons.collections.map.AbstractHashedMap
          extended by org.apache.commons.collections.map.AbstractLinkedMap
              extended by org.apache.commons.collections.map.LRUMap
                  extended by org.apache.openjpa.lib.util.LRUMap
All Implemented Interfaces:
Serializable, Cloneable, Map, BoundedMap, IterableMap, OrderedMap, SizedMap

public class LRUMap
extends LRUMap
implements SizedMap

Extension of the commons LRUMap that can change its maximum size.

Author:
Abe White
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.commons.collections.map.AbstractLinkedMap
AbstractLinkedMap.EntrySetIterator, AbstractLinkedMap.KeySetIterator, AbstractLinkedMap.LinkEntry, AbstractLinkedMap.LinkIterator, AbstractLinkedMap.LinkMapIterator, AbstractLinkedMap.ValuesIterator
 
Nested classes/interfaces inherited from class org.apache.commons.collections.map.AbstractHashedMap
AbstractHashedMap.EntrySet, AbstractHashedMap.HashEntry, AbstractHashedMap.HashIterator, AbstractHashedMap.HashMapIterator, AbstractHashedMap.KeySet, AbstractHashedMap.Values
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
 
Fields inherited from class org.apache.commons.collections.map.LRUMap
DEFAULT_MAX_SIZE
 
Fields inherited from class org.apache.commons.collections.map.AbstractLinkedMap
header
 
Fields inherited from class org.apache.commons.collections.map.AbstractHashedMap
data, DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_THRESHOLD, entrySet, GETKEY_INVALID, GETVALUE_INVALID, keySet, loadFactor, MAXIMUM_CAPACITY, modCount, NO_NEXT_ENTRY, NO_PREVIOUS_ENTRY, NULL, REMOVE_INVALID, SETVALUE_INVALID, size, threshold, values
 
Constructor Summary
LRUMap()
           
LRUMap(int maxSize)
           
LRUMap(int maxSize, float loadFactor)
           
LRUMap(Map map)
           
 
Method Summary
protected  void doReadObject(ObjectInputStream in)
           
protected  void doWriteObject(ObjectOutputStream out)
           
 int getMaxSize()
          The maximum number of entries, or Integer.MAX_VALUE for no limit.
 boolean isFull()
          Whether the map is full.
 int maxSize()
           
 void overflowRemoved(Object key, Object value)
          Overridable callback for when an overflow entry is automatically removed.
protected  boolean removeLRU(AbstractLinkedMap.LinkEntry entry)
           
 void setMaxSize(int max)
          The maximum number of entries, or Integer.MAX_VALUE for no limit.
 
Methods inherited from class org.apache.commons.collections.map.LRUMap
addMapping, clone, get, isScanUntilRemovable, moveToMRU, reuseMapping, updateEntry
 
Methods inherited from class org.apache.commons.collections.map.AbstractLinkedMap
addEntry, clear, containsValue, createEntry, createEntrySetIterator, createKeySetIterator, createValuesIterator, entryAfter, entryBefore, firstKey, getEntry, init, lastKey, mapIterator, nextKey, orderedMapIterator, previousKey, removeEntry
 
Methods inherited from class org.apache.commons.collections.map.AbstractHashedMap
calculateNewCapacity, calculateThreshold, checkCapacity, containsKey, convertKey, destroyEntry, ensureCapacity, entryHashCode, entryKey, entryNext, entrySet, entryValue, equals, getEntry, hash, hashCode, hashIndex, isEmpty, isEqualKey, isEqualValue, keySet, put, putAll, remove, removeMapping, reuseEntry, size, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values
 

Constructor Detail

LRUMap

public LRUMap()

LRUMap

public LRUMap(int maxSize)

LRUMap

public LRUMap(int maxSize,
              float loadFactor)

LRUMap

public LRUMap(Map map)
Method Detail

getMaxSize

public int getMaxSize()
Description copied from interface: SizedMap
The maximum number of entries, or Integer.MAX_VALUE for no limit.

Specified by:
getMaxSize in interface SizedMap

setMaxSize

public void setMaxSize(int max)
Description copied from interface: SizedMap
The maximum number of entries, or Integer.MAX_VALUE for no limit.

Specified by:
setMaxSize in interface SizedMap

overflowRemoved

public void overflowRemoved(Object key,
                            Object value)
Description copied from interface: SizedMap
Overridable callback for when an overflow entry is automatically removed.

Specified by:
overflowRemoved in interface SizedMap

maxSize

public int maxSize()
Specified by:
maxSize in interface BoundedMap
Overrides:
maxSize in class LRUMap

isFull

public boolean isFull()
Description copied from interface: SizedMap
Whether the map is full.

Specified by:
isFull in interface BoundedMap
Specified by:
isFull in interface SizedMap
Overrides:
isFull in class LRUMap

removeLRU

protected boolean removeLRU(AbstractLinkedMap.LinkEntry entry)
Overrides:
removeLRU in class LRUMap

doWriteObject

protected void doWriteObject(ObjectOutputStream out)
                      throws IOException
Overrides:
doWriteObject in class LRUMap
Throws:
IOException

doReadObject

protected void doReadObject(ObjectInputStream in)
                     throws IOException,
                            ClassNotFoundException
Overrides:
doReadObject in class LRUMap
Throws:
IOException
ClassNotFoundException


Copyright © 2006-2008 Apache Software Foundation. All Rights Reserved.