blob: 1f36acc14ece2f8f82528a4d839e02c9c47b00ce [file] [log] [blame]
package org.unicode.cldr.util;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* A Map that keeps a fixed number of key-value pairs and kicks pairs out in least-recently-used order.
*
* @deprecated This class has been deprecated; the project now includes GUAVA. which offer Cache implementations
* that can be used instead
*
* @author jchye
*
* @param <K>
* the key type
* @param <V>
* the value type
*
*/
@Deprecated
public class LruMap<K, V> extends LinkedHashMap<K, V> {
private static final boolean DEBUG_LRU_MAP = false;
private static final long serialVersionUID = -9176469448381227725L;
private int cacheSize;
@Deprecated
public LruMap(int cacheSize) {
super(cacheSize, 1, true);
this.cacheSize = cacheSize;
if (DEBUG_LRU_MAP) {
System.out.println(System.currentTimeMillis() + " " + getClass().getCanonicalName() + ": Instantiated LRUMap with size " + cacheSize);
}
}
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
boolean shouldRemove = (size() > this.cacheSize);
if (DEBUG_LRU_MAP) {
if (shouldRemove) {
System.out.println(System.currentTimeMillis() + " " + getClass().getCanonicalName() + ": removing entry for key " + eldest.getKey().toString());
System.out.println(System.currentTimeMillis() + " " + getClass().getCanonicalName() + ": Old Map size is: " + size());
}
}
return shouldRemove;
}
@Override
public V put(K key, V value) {
if (DEBUG_LRU_MAP) {
System.out.println(System.currentTimeMillis() + " " + getClass().getCanonicalName() + ": Adding value for key " + key.toString());
System.out.println(System.currentTimeMillis() + " " + getClass().getCanonicalName() + " Old map size is: " + size());
}
return super.put(key, value);
}
}