Package net.sourceforge.jnlp.util
Class TimedHashMap<K,V>
- java.lang.Object
-
- net.sourceforge.jnlp.util.TimedHashMap<K,V>
-
- Type Parameters:
K
- The key typeV
- The Object type
- All Implemented Interfaces:
java.util.Map<K,V>
public class TimedHashMap<K,V> extends java.lang.Object implements java.util.Map<K,V>
Simple utility class that extends HashMap by adding an expiry to the entries. This map stores entries, and returns them only if the entries were last accessed within a specified timeout period. Otherwise, null is returned. This map does not allow null keys but does allow null values.
-
-
Constructor Summary
Constructors Constructor Description TimedHashMap()
TimedHashMap(long timeout, java.util.concurrent.TimeUnit unit)
Create a new map with a non-default entry timeout period
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
boolean
containsKey(java.lang.Object key)
boolean
containsValue(java.lang.Object value)
java.util.Set<java.util.Map.Entry<K,V>>
entrySet()
V
get(java.lang.Object key)
Return cached item if it has not already expired.boolean
isEmpty()
java.util.Set<K>
keySet()
V
put(K key, V value)
Store the item in the map and associate a timestamp with it.void
putAll(java.util.Map<? extends K,? extends V> m)
V
remove(java.lang.Object key)
void
setTimeout(long timeout, java.util.concurrent.TimeUnit unit)
Specify how long (in nanoseconds) entries are valid forint
size()
java.util.Collection<V>
values()
-
-
-
Method Detail
-
setTimeout
public void setTimeout(long timeout, java.util.concurrent.TimeUnit unit)
Specify how long (in nanoseconds) entries are valid for- Parameters:
unit
- the units of the timeouttimeout
- the length of the timeout
-
put
public V put(K key, V value)
Store the item in the map and associate a timestamp with it. null is not accepted as a key.
-
get
public V get(java.lang.Object key)
Return cached item if it has not already expired. Before returning, this method also resets the "last accessed" time for this entry, so it is good for another 10 seconds
-
containsKey
public boolean containsKey(java.lang.Object key)
-
containsValue
public boolean containsValue(java.lang.Object value)
-
values
public java.util.Collection<V> values()
-
-