Interface for IndexLinkedList

git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@424040 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Robert Davies 2006-07-20 20:11:22 +00:00
parent 1ac701c48a
commit dc5b15ecd2
1 changed files with 154 additions and 0 deletions

View File

@ -0,0 +1,154 @@
package org.apache.activemq.kaha.impl;
interface IndexLinkedList{
/**
* @return the root used by the List
*/
public IndexItem getRoot();
/**
* Returns the first element in this list.
*
* @return the first element in this list.
*/
public IndexItem getFirst();
/**
* Returns the last element in this list.
*
* @return the last element in this list.
*/
public IndexItem getLast();
/**
* Removes and returns the first element from this list.
*
* @return the first element from this list.
*/
public IndexItem removeFirst();
/**
* Removes and returns the last element from this list.
*
* @return the last element from this list.
*/
public Object removeLast();
/**
* Inserts the given element at the beginning of this list.
*
* @param o the element to be inserted at the beginning of this list.
*/
public void addFirst(IndexItem item);
/**
* Appends the given element to the end of this list. (Identical in function to the <tt>add</tt> method; included
* only for consistency.)
*
* @param o the element to be inserted at the end of this list.
*/
public void addLast(IndexItem item);
/**
* Returns the number of elements in this list.
*
* @return the number of elements in this list.
*/
public int size();
/**
* is the list empty?
*
* @return true if there are no elements in the list
*/
public boolean isEmpty();
/**
* Appends the specified element to the end of this list.
*
* @param o element to be appended to this list.
* @return <tt>true</tt> (as per the general contract of <tt>Collection.add</tt>).
*/
public boolean add(IndexItem item);
/**
* Removes all of the elements from this list.
*/
public void clear();
// Positional Access Operations
/**
* Returns the element at the specified position in this list.
*
* @param index index of element to return.
* @return the element at the specified position in this list.
*
* @throws IndexOutOfBoundsException if the specified index is is out of range (<tt>index &lt; 0 || index &gt;= size()</tt>).
*/
public IndexItem get(int index);
/**
* Inserts the specified element at the specified position in this list. Shifts the element currently at that
* position (if any) and any subsequent elements to the right (adds one to their indices).
*
* @param index index at which the specified element is to be inserted.
* @param element element to be inserted.
*
* @throws IndexOutOfBoundsException if the specified index is out of range (<tt>index &lt; 0 || index &gt; size()</tt>).
*/
public void add(int index,IndexItem element);
/**
* Removes the element at the specified position in this list. Shifts any subsequent elements to the left (subtracts
* one from their indices). Returns the element that was removed from the list.
*
* @param index the index of the element to removed.
* @return the element previously at the specified position.
*
* @throws IndexOutOfBoundsException if the specified index is out of range (<tt>index &lt; 0 || index &gt;= size()</tt>).
*/
public Object remove(int index);
// Search Operations
/**
* Returns the index in this list of the first occurrence of the specified element, or -1 if the List does not
* contain this element. More formally, returns the lowest index i such that
* <tt>(o==null ? get(i)==null : o.equals(get(i)))</tt>, or -1 if there is no such index.
*
* @param o element to search for.
* @return the index in this list of the first occurrence of the specified element, or -1 if the list does not
* contain this element.
*/
public int indexOf(IndexItem o);
/**
* Retrieve the next entry after this entry
*
* @param entry
* @return next entry
*/
public IndexItem getNextEntry(IndexItem entry);
/**
* Retrive the prev entry after this entry
*
* @param entry
* @return prev entry
*/
public IndexItem getPrevEntry(IndexItem entry);
/**
* remove an entry
* @param e
*/
public void remove(IndexItem e);
/**
* Ensure we have the up to date entry
* @param current
* @return the entry
*/
public IndexItem getEntry(IndexItem current);
}