diff --git a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/IndexLinkedList.java b/activemq-core/src/main/java/org/apache/activemq/kaha/impl/IndexLinkedList.java deleted file mode 100755 index 2e5968a8d6..0000000000 --- a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/IndexLinkedList.java +++ /dev/null @@ -1,276 +0,0 @@ -/** - * - * Copyright 2005-2006 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ -package org.apache.activemq.kaha.impl; - -/** - * A linked list used by IndexItems - * - * @version $Revision: 1.2 $ - */ -final class IndexLinkedList implements Cloneable{ - private transient IndexItem root; - private transient int size=0; - - - /** - * Constructs an empty list. - */ - IndexLinkedList(IndexItem header){ - this.root = header; - this.root.next=root.prev=root; - } - - IndexItem getRoot(){ - return root; - } - - - - /** - * Returns the first element in this list. - * - * @return the first element in this list. - */ - IndexItem getFirst(){ - if(size==0) - return null; - return root.next; - } - - /** - * Returns the last element in this list. - * - * @return the last element in this list. - */ - IndexItem getLast(){ - if(size==0) - return null; - return root.prev; - } - - /** - * Removes and returns the first element from this list. - * - * @return the first element from this list. - */ - IndexItem removeFirst(){ - if(size==0){ - return null; - } - IndexItem result=root.next; - remove(root.next); - return result; - } - - /** - * Removes and returns the last element from this list. - * - * @return the last element from this list. - */ - Object removeLast(){ - if(size==0) - return null; - IndexItem result=root.prev; - remove(root.prev); - return result; - } - - /** - * Inserts the given element at the beginning of this list. - * - * @param o the element to be inserted at the beginning of this list. - */ - void addFirst(IndexItem item){ - addBefore(item,root.next); - } - - /** - * Appends the given element to the end of this list. (Identical in function to the add method; included - * only for consistency.) - * - * @param o the element to be inserted at the end of this list. - */ - void addLast(IndexItem item){ - addBefore(item,root); - } - - /** - * Returns the number of elements in this list. - * - * @return the number of elements in this list. - */ - int size(){ - return size; - } - - /** - * is the list empty? - * - * @return true if there are no elements in the list - */ - boolean isEmpty(){ - return size==0; - } - - /** - * Appends the specified element to the end of this list. - * - * @param o element to be appended to this list. - * @return true (as per the general contract of Collection.add). - */ - boolean add(IndexItem item){ - addBefore(item,root); - return true; - } - - /** - * Removes all of the elements from this list. - */ - void clear(){ - root.next=root.prev=root; - size=0; - } - - // 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 (index < 0 || index >= size()). - */ - IndexItem get(int index){ - return entry(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 (index < 0 || index > size()). - */ - void add(int index,IndexItem element){ - addBefore(element,(index==size?root:entry(index))); - } - - /** - * 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 (index < 0 || index >= size()). - */ - Object remove(int index){ - IndexItem e=entry(index); - remove(e); - return e; - } - - /** - * Return the indexed entry. - */ - private IndexItem entry(int index){ - if(index<0||index>=size) - throw new IndexOutOfBoundsException("Index: "+index+", Size: "+size); - IndexItem e=root; - if(indexindex;i--) - e=e.prev; - } - return e; - } - - // 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 - * (o==null ? get(i)==null : o.equals(get(i))), 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. - */ - int indexOf(IndexItem o){ - int index=0; - for(IndexItem e=root.next;e!=root;e=e.next){ - if(o==e){ - return index; - } - index++; - } - return -1; - } - - /** - * Retrieve the next entry after this entry - * - * @param entry - * @return next entry - */ - IndexItem getNextEntry(IndexItem entry){ - return entry.next != root ? entry.next : null; - } - - /** - * Retrive the prev entry after this entry - * - * @param entry - * @return prev entry - */ - IndexItem getPrevEntry(IndexItem entry){ - return entry.prev != root ? entry.prev : null; - } - - /** - * Insert an Entry before this entry - * - * @param o the elment to insert - * @param e the Entry to insert the object before - * - */ - void addBefore(IndexItem insert,IndexItem e){ - insert.next=e; - insert.prev=e.prev; - insert.prev.next=insert; - insert.next.prev=insert; - size++; - } - - void remove(IndexItem e){ - if(e==root) - return; - e.prev.next=e.next; - e.next.prev=e.prev; - size--; - } - - /** - *@return clone - */ - public Object clone(){ - IndexLinkedList clone=new IndexLinkedList(this.root); - for(IndexItem e=root.next;e!=root;e=e.next) - clone.add(e); - return clone; - } -}