org.apache.wiki.util
Class TimedCounterList<T>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<T>
          extended by 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

Field Summary
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
TimedCounterList()
           
 
Method Summary
 void add(int index, T element)
          
 void cleanup(long maxage)
          Performs a cleanup of all items older than maxage.
 int count(T obj)
          Returns the count how many times this object is available in this list, using equals().
 T get(int index)
          
 long getAddTime(int index)
          Returns the time when this particular item was added on the list.
 T remove(int index)
          
 T set(int index, T element)
          
 int size()
          
 
Methods inherited from class java.util.AbstractList
add, addAll, clear, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, removeRange, subList
 
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray
 

Constructor Detail

TimedCounterList

public TimedCounterList()
Method Detail

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()).


Copyright © {inceptionYear}-2014 The Apache Software Foundation. All rights reserved.