Package org.apache.log4j.chainsaw
Class CyclicBufferList
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList
org.apache.log4j.chainsaw.CyclicBufferList
- All Implemented Interfaces:
Iterable
,Collection
,List
CyclicBuffer implementation that is Object generic, and implements the List interface.
Original CyclicBuffer @author Ceki Gülcü
This implementation (although there's very little change) @author Paul Smith <psmith@apache.org>
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) Object[]
(package private) int
(package private) int
(package private) int
(package private) int
Fields inherited from class java.util.AbstractList
modCount
-
Constructor Summary
ConstructorsConstructorDescriptionCyclicBufferList
(int maxSize) Instantiate a new CyclicBuffer of at mostmaxSize
events. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Add anevent
as the last event in the buffer.void
clear()
get()
Get the oldest (first) element in the buffer.get
(int i) Get the ith oldest event currently in the buffer.int
getLast()
int
remove
(int index) Removes the element at the specified position in this list.void
resize
(int newSize) Resize the cyclic buffer tonewSize
.int
size()
Get the number of elements in the buffer.Methods inherited from class java.util.AbstractList
add, addAll, 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.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.List
add, addAll, addAll, contains, containsAll, equals, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, removeAll, replaceAll, retainAll, sort, spliterator, subList, toArray, toArray
-
Field Details
-
ea
Object[] ea -
first
int first -
last
int last -
numElems
int numElems -
maxSize
int maxSize
-
-
Constructor Details
-
CyclicBufferList
public CyclicBufferList(int maxSize) Instantiate a new CyclicBuffer of at mostmaxSize
events.The
maxSize
argument must a positive integer.- Parameters:
maxSize
- The maximum number of elements in the buffer.
-
CyclicBufferList
public CyclicBufferList()
-
-
Method Details
-
remove
Removes the element at the specified position in this list. Shifts any subsequent elements to the left (subtracts one from their indices).- Specified by:
remove
in interfaceList
- Overrides:
remove
in classAbstractList
- Parameters:
index
- the index of the element to removed.- Returns:
- the element that was removed from the list.
- Throws:
IndexOutOfBoundsException
- if index out of range (index < 0 || index >= size()).
-
set
- Specified by:
set
in interfaceList
- Overrides:
set
in classAbstractList
-
add
Add anevent
as the last event in the buffer.- Specified by:
add
in interfaceCollection
- Specified by:
add
in interfaceList
- Overrides:
add
in classAbstractList
-
get
Get the ith oldest event currently in the buffer. If i is outside the range 0 to the number of elements currently in the buffer, thennull
is returned.- Specified by:
get
in interfaceList
- Specified by:
get
in classAbstractList
-
getMaxSize
public int getMaxSize() -
getLast
public int getLast() -
get
Get the oldest (first) element in the buffer. The oldest element is removed from the buffer. -
size
public int size()Get the number of elements in the buffer. This number is guaranteed to be in the range 0 tomaxSize
(inclusive).- Specified by:
size
in interfaceCollection
- Specified by:
size
in interfaceList
- Specified by:
size
in classAbstractCollection
-
resize
public void resize(int newSize) Resize the cyclic buffer tonewSize
.- Throws:
IllegalArgumentException
- ifnewSize
is negative.
-
clear
public void clear()- Specified by:
clear
in interfaceCollection
- Specified by:
clear
in interfaceList
- Overrides:
clear
in classAbstractList
-