org.pentaho.reporting.libraries.base.util

Class LFUMap

public class LFUMap extends Object implements Serializable, Cloneable

A Least-Frequently-Used Map.

This is not a real map in the sense of the Java-Collections-API. This is a slimmed down version of a Least-Frequently-Used map with no unnecessary extra stuff like iterators or other costly but rarely used java.util.Collections features. The cache does not accept null-keys, and any attempt to store null-values will yield an error.

To remove a couple of ugly checks and thus improving performance, this map enforces a minimum size of 3 items.

Author: Thomas Morgner

Constructor Summary
LFUMap(int cacheSize)
Creates a new LFU-Map with a maximum size of cacheSize entries.
Method Summary
voidclear()
Objectclone()
Objectget(Object key)
Return the entry for the given key.
intgetMaximumSize()
Returns the defined maximum size.
booleanisEmpty()
Checks whether this map is empty.
voidput(Object key, Object value)
Puts the given value into the map using the specified non-null key.
voidremove(Object key)
Removes the entry for the given key.
intsize()
Returns the number of items in this map.
voidvalidate()
Validates the map's internal datastructures.

Constructor Detail

LFUMap

public LFUMap(int cacheSize)
Creates a new LFU-Map with a maximum size of cacheSize entries.

Parameters: cacheSize the maximum number of elements this map will be able to store.

Method Detail

clear

public void clear()

clone

public Object clone()

get

public Object get(Object key)
Return the entry for the given key. Any successful lookup moves the entry to the top of the list.

Parameters: key the lookup key.

Returns: the value stored for the key or null.

getMaximumSize

public int getMaximumSize()
Returns the defined maximum size.

Returns: the defines maximum size.

isEmpty

public boolean isEmpty()
Checks whether this map is empty.

Returns: true, if the map is empty, false otherwise.

put

public void put(Object key, Object value)
Puts the given value into the map using the specified non-null key. The new entry is added as first entry in the list of recently used values.

Parameters: key the key. value the value.

remove

public void remove(Object key)
Removes the entry for the given key.

Parameters: key the key for which an entry should be removed.

size

public int size()
Returns the number of items in this map.

Returns: the number of items in the map.

validate

public void validate()
Validates the map's internal datastructures. There should be no need to call this method manually.