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

      public class CyclicBufferList
      extends AbstractList
      implements 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

    - ### Fields inherited from class java.util.AbstractList

      `modCount`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CyclicBufferList()`
    `CyclicBufferList(int maxSize)` Instantiate a new CyclicBuffer of at most `maxSize` events.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `add(Object event)` Add an `event` as the last event in the buffer.
    `void` | `clear()`
    `Object` | `get()` Get the oldest (first) element in the buffer.
    `Object` | `get(int i)` Get the ith oldest event currently in the buffer.
    `int` | `getLast()`
    `int` | `getMaxSize()`
    `Object` | `remove(int index)` Removes the element at the specified position in this list.
    `void` | `resize(int newSize)` Resize the cyclic buffer to `newSize`.
    `Object` | `set(int index, Object element)`
    `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.List

      `add, addAll, addAll, contains, containsAll, equals, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, removeAll, replaceAll, retainAll, sort, spliterator, subList, toArray, toArray`

    - ### Methods inherited from interface java.util.Collection

      `parallelStream, removeIf, stream`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach`

- - ### Constructor Detail

    - #### CyclicBufferList

          public CyclicBufferList(int maxSize)

      Instantiate a new CyclicBuffer of at most `maxSize` events. The `maxSize` argument must a positive integer.
      Parameters:
        `maxSize` - The maximum number of elements in the buffer.

    - #### CyclicBufferList

          public CyclicBufferList()

  - ### Method Detail

    - #### remove

          public Object remove(int index)

      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 interface `List`
      Overrides:
        `remove` in class `AbstractList`
      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

          public Object set(int index,
                            Object element)

      Specified by:
        `set` in interface `List`
      Overrides:
        `set` in class `AbstractList`

    - #### add

          public boolean add(Object event)

      Add an `event` as the last event in the buffer.
      Specified by:
        `add` in interface `Collection`
      Specified by:
        `add` in interface `List`
      Overrides:
        `add` in class `AbstractList`

    - #### get

          public Object get(int i)

      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, then `null` is returned.
      Specified by:
        `get` in interface `List`
      Specified by:
        `get` in class `AbstractList`

    - #### getMaxSize

          public int getMaxSize()

    - #### getLast

          public int getLast()

    - #### get

          public Object 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 to `maxSize` (inclusive).
      Specified by:
        `size` in interface `Collection`
      Specified by:
        `size` in interface `List`
      Specified by:
        `size` in class `AbstractCollection`

    - #### resize

          public void resize(int newSize)

      Resize the cyclic buffer to `newSize`.
      Throws:
        `IllegalArgumentException` - if `newSize` is negative.

    - #### clear

          public void clear()

      Specified by:
        `clear` in interface `Collection`
      Specified by:
        `clear` in interface `List`
      Overrides:
        `clear` in class `AbstractList`

Copyright © 2002-2018 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache Chainsaw, Chainsaw, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.