Class TimedCounterList<T>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<T>
org.apache.wiki.util.TimedCounterList<T>
Type Parameters:
T - The class you wish to store here
All Implemented Interfaces:
Iterable<T>, Collection<T>, List<T>

public class TimedCounterList<T>
extends AbstractList<T>
Provides a List in which all items store their addition time. This can then be used to clean the list from old items.

This class is thread-safe - all modifications are blocking, but reading is non-blocking (unless a write is ongoing).

Since:
2.8
  • Constructor Details

  • Method Details

    • set

      public T set​(int index, T element)
      Specified by:
      set in interface List<T>
      Overrides:
      set in class AbstractList<T>
    • get

      public T get​(int index)
      Specified by:
      get in interface List<T>
      Specified by:
      get in class AbstractList<T>
    • size

      public int size()
      Specified by:
      size in interface Collection<T>
      Specified by:
      size in interface List<T>
      Specified by:
      size in class AbstractCollection<T>
    • add

      public void add​(int index, T element)
      Specified by:
      add in interface List<T>
      Overrides:
      add in class AbstractList<T>
    • remove

      public T remove​(int index)
      Specified by:
      remove in interface List<T>
      Overrides:
      remove in class AbstractList<T>
    • count

      public int count​(T obj)
      Returns the count how many times this object is available in this list, using equals().
      Parameters:
      obj - The object to count.
      Returns:
      The count of the objects.
    • cleanup

      public void cleanup​(long maxage)
      Performs a cleanup of all items older than maxage.
      Parameters:
      maxage - The maximum age in milliseconds after an item is removed.
    • getAddTime

      public long getAddTime​(int index)
      Returns the time when this particular item was added on the list.
      Parameters:
      index - The index of the object.
      Returns:
      The addition time in milliseconds (@see System.currentTimeMillis()).