Class ExpiringMap<K,V>

java.lang.Object
org.apache.mina.util.ExpiringMap<K,V>
Type Parameters:
K - The key type
V - The value type
All Implemented Interfaces:
Map<K,V>

public class ExpiringMap<K,V> extends Object implements Map<K,V>
A map with expiration. This class contains a worker thread that will periodically check this class in order to determine if any objects should be removed based on the provided time-to-live value.
  • Field Details

  • Constructor Details

    • ExpiringMap

      public ExpiringMap()
      Creates a new instance of ExpiringMap using the default values DEFAULT_TIME_TO_LIVE and DEFAULT_EXPIRATION_INTERVAL
    • ExpiringMap

      public ExpiringMap(int timeToLive)
      Creates a new instance of ExpiringMap using the supplied time-to-live value and the default value for DEFAULT_EXPIRATION_INTERVAL
      Parameters:
      timeToLive - The time-to-live value (seconds)
    • ExpiringMap

      public ExpiringMap(int timeToLive, int expirationInterval)
      Creates a new instance of ExpiringMap using the supplied values and a ConcurrentHashMap for the internal data structure.
      Parameters:
      timeToLive - The time-to-live value (seconds)
      expirationInterval - The time between checks to see if a value should be removed (seconds)
    • ExpiringMap

      private ExpiringMap(ConcurrentHashMap<K, ExpiringMap<K,V>.ExpiringObject> delegate, CopyOnWriteArrayList<ExpirationListener<V>> expirationListeners, int timeToLive, int expirationInterval)
  • Method Details

    • put

      public V put(K key, V value)
      Specified by:
      put in interface Map<K,V>
    • get

      public V get(Object key)
      Specified by:
      get in interface Map<K,V>
    • remove

      public V remove(Object key)
      Specified by:
      remove in interface Map<K,V>
    • containsKey

      public boolean containsKey(Object key)
      Specified by:
      containsKey in interface Map<K,V>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<K,V>
    • size

      public int size()
      Specified by:
      size in interface Map<K,V>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Map<K,V>
    • clear

      public void clear()
      Specified by:
      clear in interface Map<K,V>
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface Map<K,V>
      Overrides:
      hashCode in class Object
    • keySet

      public Set<K> keySet()
      Specified by:
      keySet in interface Map<K,V>
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface Map<K,V>
      Overrides:
      equals in class Object
    • putAll

      public void putAll(Map<? extends K, ? extends V> inMap)
      Specified by:
      putAll in interface Map<K,V>
    • values

      public Collection<V> values()
      Specified by:
      values in interface Map<K,V>
    • entrySet

      public Set<Map.Entry<K,V>> entrySet()
      Specified by:
      entrySet in interface Map<K,V>
    • addExpirationListener

      public void addExpirationListener(ExpirationListener<V> listener)
      Adds a listener in the expiration listeners
      Parameters:
      listener - The listener to add
    • removeExpirationListener

      public void removeExpirationListener(ExpirationListener<V> listener)
      Removes a listener from the expiration listeners
      Parameters:
      listener - The listener to remove
    • getExpirer

      public ExpiringMap<K,V>.Expirer getExpirer()
      Returns:
      The Expirer instance
    • getExpirationInterval

      public int getExpirationInterval()
      Get the interval in which an object will live in the map before it is removed.
      Returns:
      The expiration time in second
    • getTimeToLive

      public int getTimeToLive()
      Returns:
      the Time-to-live value in seconds.
    • setExpirationInterval

      public void setExpirationInterval(int expirationInterval)
      Set the interval in which an object will live in the map before it is removed.
      Parameters:
      expirationInterval - The expiration time in seconds
    • setTimeToLive

      public void setTimeToLive(int timeToLive)
      Update the value for the time-to-live
      Parameters:
      timeToLive - The time-to-live (seconds)