Class ItemHistory<T>

java.lang.Object
com.pnfsoftware.jeb.util.events.EventSource
com.pnfsoftware.jeb.util.collect.ItemHistory<T>
Type Parameters:
T -
All Implemented Interfaces:
IEventSource

public class ItemHistory<T> extends EventSource
Generic tracker of items, based on a simple history queue (get last, get next) model.

Typically, such objects are long-lived; internally, references to items are strong. Therefore, it is up to the user to make sure that referenced objects are not prevented from being garbage collected, should they be.

  • Constructor Details

    • ItemHistory

      public ItemHistory()
      Create a history of 1 with a capacity of 100 and cleanHistoryAfterIndex set to true.
    • ItemHistory

      public ItemHistory(int capacity, boolean cleanHistoryAfterIndex)
      Create a history object with the
      Parameters:
      capacity - maximum capacity, must be at least 1
      cleanHistoryAfterIndex - if true, recording an element into the history when the history index is not at the top will erase all elements after the index and add the new item at the top; if false, the item is inserted at the top regardless of where the history index was
  • Method Details

    • reset

      public void reset()
    • size

      public int size()
    • capacity

      public int capacity()
      Get the history maximum capacity.
      Returns:
    • capacity

      public void capacity(int capacity)
      Update the history capacity.
      Parameters:
      capacity -
    • position

      public int position()
      Get the current history index. Navigating the history using getNext(), getPrevious(), or modifying the history using add(),remove(), etc. updates this pointer.
      Returns:
    • add

      public void add(T item)
      Add an item to the history. Note that any next item may be removed (based on cleanHistoryAfterIndex constructor parameter, in particular, if getPrevious() method was called without restoring position)
      Parameters:
      item -
    • addAll

      public void addAll(Collection<T> items)
    • remove

      public boolean remove(T item)
    • getMostRecent

      public T getMostRecent()
    • get

      public List<T> get()
      Retrieve a copy of the history items. The first item in the returned list is the oldest one.
    • peekPrevious

      public T peekPrevious()
    • peekNext

      public T peekNext()
    • getPrevious

      public T getPrevious()
    • getPrevious

      public T getPrevious(T updatedItem)
    • getAt

      public T getAt(int newIndex, T updatedItem)
      Set the position of the History at a particular index.
      Parameters:
      newIndex - The new index of the history
      Returns:
      The current item at this index.
    • getNext

      public T getNext()
    • getNext

      public T getNext(T updatedItem)
    • hasPrevious

      public boolean hasPrevious()
    • hasNext

      public boolean hasNext()
    • toString

      public String toString()
      Overrides:
      toString in class Object