activemq-cpp-3.6.0
decaf::util::LinkedList< E > Class Template Reference

A complete implementation of the List interface using a doubly linked list data structure. More...

#include <src/main/decaf/util/LinkedList.h>

Inheritance diagram for decaf::util::LinkedList< E >:

Data Structures

class  ConstLinkedListIterator
class  ConstReverseIterator
class  LinkedListIterator
class  ListNode
class  ReverseIterator

Public Member Functions

 LinkedList ()
 LinkedList (const LinkedList< E > &list)
 LinkedList (const Collection< E > &collection)
virtual ~LinkedList ()
LinkedList< E > & operator= (const LinkedList< E > &list)
LinkedList< E > & operator= (const Collection< E > &collection)
virtual E get (int index) const
 Gets the element contained at position passed.
Parameters
indexThe position to get.
Returns
value at index specified.
Exceptions
IndexOutOfBoundsExceptionif the index given is less than zero or greater than the List size.
This implementation first gets a list iterator pointing to the indexed element (with listIterator(index)). Then, it gets the element using ListIterator.next and returns it.
virtual E set (int index, const E &element)
 Replaces the element at the specified position in this list with the specified element.
Parameters
indexThe index of the element to replace.
elementThe element to be stored at the specified position.
Returns
the element previously at the specified position.
Exceptions
IndexOutOfBoundsExceptionif the index given is less than zero or greater than the List size.
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentExceptionif some property of the element prevents it from being added to this collection
IllegalStateExceptionif the element cannot be added at this time due to insertion restrictions.
This implementation first gets a list iterator pointing to the indexed element (with listIterator(index)). Then, it gets the current element using ListIterator.next and replaces it with ListIterator.set.
virtual bool add (const E &value)
 Returns true if this collection changed as a result of the call.
virtual void add (int index, const E &value)
 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).
Parameters
indexThe index at which the specified element is to be inserted.
elementThe element to be inserted in this List.
Exceptions
IndexOutOfBoundsExceptionif the index is greater than size of the List.
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentExceptionif some property of the element prevents it from being added to this collection
IllegalStateExceptionif the element cannot be added at this time due to insertion restrictions.
This implementation first gets a list iterator pointing to the indexed element (with listIterator(index)). Then, it inserts the specified element with ListIterator.add.
virtual bool addAll (const Collection< E > &collection)
 Adds all of the elements in the specified collection to this collection.The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (This implies that the behavior of this call is undefined if the specified collection is this collection, and this collection is nonempty.)
Parameters
collectionThe Collection whose elements are added to this one.
Returns
true if this collection changed as a result of the call
Exceptions
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentExceptionif some property of an element prevents it from being added to this collection
IllegalStateExceptionif an element cannot be added at this time due to insertion restrictions.
This implementation iterates over the specified collection, and adds each object returned by the iterator to this collection, in turn.Note that this implementation will throw an UnsupportedOperationException unless add is overridden (assuming the specified collection is non-empty).
virtual bool addAll (int index, const Collection< E > &collection)
 Inserts all of the elements in the specified collection into this list at the specified position (optional operation).Shifts the element currently at that position (if any) and any subsequent elements to the right (increases their indices). The new elements will appear in this list in the order that they are returned by the specified collection's iterator. The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (Note that this will occur if the specified collection is this list, and it's nonempty.)
Parameters
indexThe index at which to insert the first element from the specified collection
sourceThe Collection containing elements to be added to this list
Returns
true if this list changed as a result of the call
Exceptions
IndexOutOfBoundsExceptionif the index given is less than zero or greater than the List size.
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentExceptionif some property of the element prevents it from being added to this collection
IllegalStateExceptionif the element cannot be added at this time due to insertion restrictions.
This implementation gets an iterator over the specified collection and a list iterator over this list pointing to the indexed element (with listIterator(index)). Then, it iterates over the specified collection, inserting the elements obtained from the iterator into this list, one at a time, using ListIterator.add (to skip over the added element).
virtual void copy (const Collection< E > &collection)
 Renders this Collection as a Copy of the given Collection.
virtual bool remove (const E &value)
 Removes a single instance of the specified element from the collection.More formally, removes an element e such that (value == NULL ? e == NULL : value == e), if this collection contains one or more such elements. Returns true if this collection contained the specified element (or equivalently, if this collection changed as a result of the call).
Parameters
valueThe reference to the element to remove from this Collection.
Returns
true if the collection was changed, false otherwise.
Exceptions
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
This implementation iterates over the collection looking for the specified element. If it finds the element, it removes the element from the collection using the iterator's remove method.Note that this implementation throws an UnsupportedOperationException if the iterator returned by this collection's iterator method does not implement the remove method and this collection contains the specified object.
virtual bool isEmpty () const
 Returns true if this collection contains no elements.
virtual int size () const
 Returns the number of elements in this collection.
virtual void clear ()
 Removes all of the elements from this collection (optional operation).
virtual bool contains (const E &value) const
 Returns true if this collection contains the specified element.More formally, returns true if and only if this collection contains at least one element e such that (value == NULL ? e == NULL : value == e ).
Parameters
valueThe value to check for presence in the collection.
Returns
true if there is at least one of the elements in the collection
Exceptions
NullPointerExceptionif the Collection contains pointers and the Collection does not allow for NULL elements (optional check).
This implementation iterates over the elements in the collection, checking each element in turn for equality with the specified element.
virtual int indexOf (const E &value) const
 Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element.
virtual int lastIndexOf (const E &value) const
 Returns the index of the last occurrence of the specified element in this list, or -1 if this list does not contain the element.
virtual std::vector< E > toArray () const
 Answers an STL vector containing copies of all elements contained in this Collection.
virtual bool offer (const E &value)
 Inserts the specified element into the queue provided that the condition allows such an operation.
virtual bool poll (E &result)
 Gets and removes the element in the head of the queue.
virtual E remove ()
 Gets and removes the element in the head of the queue.
virtual bool peek (E &result) const
 Gets but not removes the element in the head of the queue.
virtual E element () const
 Gets but not removes the element in the head of the queue.
virtual void addFirst (const E &value)
 Inserts an element onto the front of the Deque if possible without violating the implementations capacity restrictions.
virtual void addLast (const E &value)
 Inserts an element onto the end of the Deque if possible without violating the implementations capacity restrictions.
virtual E & getFirst ()
 Attempts to fetch a reference to the first element in the Deque.
virtual const E & getFirst () const
virtual E & getLast ()
 Attempts to fetch a reference to the last element in the Deque.
virtual const E & getLast () const
virtual bool offerFirst (const E &element)
 This method attempts to insert the given element into the Deque at the front end.
virtual bool offerLast (const E &element)
 This method attempts to insert the given element into the Deque at the end.
virtual E removeFirst ()
 Removes the topmost element from the Deque and returns it.
virtual E removeLast ()
 Removes the last element from the Deque and returns it.
virtual bool pollFirst (E &result)
 Removes the first element from the Deque assigns it to the element reference passed.
virtual bool pollLast (E &result)
 Removes the last element from the Deque assigns it to the element reference passed.
virtual bool peekFirst (E &result) const
 Retrieves the first element contained in this Deque and assigns its value to the reference value passed the value however is not removed from the Deque.
virtual bool peekLast (E &result) const
 Retrieves the last element contained in this Deque and assigns its value to the reference value passed the value however is not removed from the Deque.
virtual E pop ()
 Treats this Deque as a stack and attempts to pop an element off the top.
virtual void push (const E &element)
 Pushes an element onto the stack represented by this deque (in other words, at the head of this deque) if it is possible to do so immediately without violating capacity restrictions, otherwise it throwing an IllegalStateException if no space is currently available.
virtual bool removeFirstOccurrence (const E &value)
 Removes the first occurrence of the specified element from this Deque.
virtual bool removeLastOccurrence (const E &value)
 Removes the last occurrence of the specified element from this Deque.
virtual ListIterator< E > * listIterator (int index)
virtual ListIterator< E > * listIterator (int index) const
virtual Iterator< E > * descendingIterator ()
 Provides an Iterator over this Collection that traverses the element in reverse order.
virtual Iterator< E > * descendingIterator () const
- Public Member Functions inherited from decaf::util::AbstractSequentialList< E >
virtual ~AbstractSequentialList ()
virtual Iterator< E > * iterator ()
virtual Iterator< E > * iterator () const
virtual ListIterator< E > * listIterator ()
virtual ListIterator< E > * listIterator () const
virtual E removeAt (int 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.
Parameters
index- the index of the element to be removed.
Returns
the element previously at the specified position.
Exceptions
IndexOutOfBoundsExceptionif the index given is less than zero or greater than the List size.
UnsupportedOperationExceptioif this is an unmodifiable collection.

- Public Member Functions inherited from decaf::util::AbstractList< E >
 AbstractList ()
virtual ~AbstractList ()
virtual void add (int index DECAF_UNUSED, const E &element DECAF_UNUSED)
virtual E set (int index DECAF_UNUSED, const E &element DECAF_UNUSED)
- Public Member Functions inherited from decaf::util::List< E >
 List ()
virtual ~List ()
- Public Member Functions inherited from decaf::util::Collection< E >
virtual ~Collection ()
- Public Member Functions inherited from decaf::lang::Iterable< E >
virtual ~Iterable ()
- Public Member Functions inherited from decaf::util::concurrent::Synchronizable
virtual ~Synchronizable ()
- Public Member Functions inherited from decaf::util::AbstractCollection< E >
 AbstractCollection ()
virtual ~AbstractCollection ()
AbstractCollection< E > & operator= (const AbstractCollection< E > &collection)
 Assignment Operator, copy element from the source collection to this collection after clearing any element stored in this collection.
virtual bool containsAll (const Collection< E > &collection) const
 Returns true if this collection contains all of the elements in the specified collection.
Parameters
collectionThe Collection to compare to this one.
Exceptions
NullPointerExceptionif the Collection contains pointers and the Collection does not allow for NULL elements (optional check).

virtual bool equals (const Collection< E > &collection) const
 Answers true if this Collection and the one given are the same size and if each element contained in the Collection given is equal to an element contained in this collection.
virtual bool add (const E &value DECAF_UNUSED)
 
virtual bool removeAll (const Collection< E > &collection)
 Removes all this collection's elements that are also contained in the specified collection (optional operation).After this call returns, this collection will contain no elements in common with the specified collection.
Parameters
collectionThe Collection whose elements are to be removed from this one.
Returns
true if the collection changed as a result of this call.
Exceptions
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.

virtual bool retainAll (const Collection< E > &collection)
 Retains only the elements in this collection that are contained in the specified collection (optional operation).In other words, removes from this collection all of its elements that are not contained in the specified collection.
Parameters
collectionThe Collection whose elements are to be retained.
Returns
true if the collection changed as a result of this call.
Exceptions
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.

virtual void lock ()
 Locks the object.
virtual bool tryLock ()
 Attempts to Lock the object, if the lock is already held by another thread than this method returns false.
virtual void unlock ()
 Unlocks the object.
virtual void wait ()
 Waits on a signal from this object, which is generated by a call to Notify.
virtual void wait (long long millisecs)
 Waits on a signal from this object, which is generated by a call to Notify.
virtual void wait (long long millisecs, int nanos)
 Waits on a signal from this object, which is generated by a call to Notify.
virtual void notify ()
 Signals a waiter on this object that it can now wake up and continue.
virtual void notifyAll ()
 Signals the waiters on this object that it can now wake up and continue.
- Public Member Functions inherited from decaf::util::Deque< E >
virtual ~Deque ()
- Public Member Functions inherited from decaf::util::Queue< E >
virtual ~Queue ()

Additional Inherited Members

- Protected Member Functions inherited from decaf::util::AbstractList< E >
void removeRange (int start, int end)
- Protected Attributes inherited from decaf::util::AbstractList< E >
int modCount

Detailed Description

template<typename E>
class decaf::util::LinkedList< E >

A complete implementation of the List interface using a doubly linked list data structure.

This class also implements the Deque interface providing a common interface for additions into the list at the front and end as well as allowing insertions anywhere in between. This class can be used then to implement other data structures such as Stacks, Queue's or double ended Queue's.

The operations on this List object that index a particular element involve iterating over the links of the list from beginning to end, starting from whichever end is closer to the location the operation is to be performed on.

Since
1.0

Constructor & Destructor Documentation

template<typename E>
decaf::util::LinkedList< E >::LinkedList ( )
inline
template<typename E>
decaf::util::LinkedList< E >::LinkedList ( const LinkedList< E > &  list)
inline
template<typename E>
decaf::util::LinkedList< E >::LinkedList ( const Collection< E > &  collection)
inline
template<typename E>
virtual decaf::util::LinkedList< E >::~LinkedList ( )
inlinevirtual

Member Function Documentation

template<typename E>
virtual bool decaf::util::LinkedList< E >::add ( const E &  value)
inlinevirtual

Returns true if this collection changed as a result of the call.

(Returns false if this collection does not permit duplicates and already contains the specified element.)

Collections that support this operation may place limitations on what elements may be added to this collection. In particular, some collections will refuse to add null elements, and others will impose restrictions on the type of elements that may be added. Collection classes should clearly specify in their documentation any restrictions on what elements may be added.

If a collection refuses to add a particular element for any reason other than that it already contains the element, it must throw an exception (rather than returning false). This preserves the invariant that a collection always contains the specified element after this call returns.

For non-pointer values, i.e. class instances or string's the object will be copied into the collection, thus the object must support being copied, must not hide the copy constructor and assignment operator.

Parameters
valueThe reference to the element to add to this Collection.
Returns
true if the element was added to this Collection.
Exceptions
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentExceptionif some property of the element prevents it from being added to this collection
IllegalStateExceptionif the element cannot be added at this time due to insertion restrictions.

Reimplemented from decaf::util::AbstractList< E >.

template<typename E>
virtual void decaf::util::LinkedList< E >::add ( int index  ,
const E &  element 
)
inlinevirtual

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).

Parameters
indexThe index at which the specified element is to be inserted.
elementThe element to be inserted in this List.
Exceptions
IndexOutOfBoundsExceptionif the index is greater than size of the List.
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentExceptionif some property of the element prevents it from being added to this collection
IllegalStateExceptionif the element cannot be added at this time due to insertion restrictions.
This implementation first gets a list iterator pointing to the indexed element (with listIterator(index)). Then, it inserts the specified element with ListIterator.add.

This implementation first gets a list iterator pointing to the indexed element (with listIterator(index)). Then, it inserts the specified element with ListIterator.add.

Reimplemented from decaf::util::AbstractSequentialList< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::addAll ( const Collection< E > &  collection)
inlinevirtual

Adds all of the elements in the specified collection to this collection.The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (This implies that the behavior of this call is undefined if the specified collection is this collection, and this collection is nonempty.)

Parameters
collectionThe Collection whose elements are added to this one.
Returns
true if this collection changed as a result of the call
Exceptions
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentExceptionif some property of an element prevents it from being added to this collection
IllegalStateExceptionif an element cannot be added at this time due to insertion restrictions.
This implementation iterates over the specified collection, and adds each object returned by the iterator to this collection, in turn.Note that this implementation will throw an UnsupportedOperationException unless add is overridden (assuming the specified collection is non-empty).

This implementation iterates over the specified collection, and adds each object returned by the iterator to this collection, in turn.

Note that this implementation will throw an UnsupportedOperationException unless add is overridden (assuming the specified collection is non-empty).

Reimplemented from decaf::util::AbstractCollection< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::addAll ( int  index,
const Collection< E > &  source 
)
inlinevirtual

Inserts all of the elements in the specified collection into this list at the specified position (optional operation).Shifts the element currently at that position (if any) and any subsequent elements to the right (increases their indices). The new elements will appear in this list in the order that they are returned by the specified collection's iterator. The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (Note that this will occur if the specified collection is this list, and it's nonempty.)

Parameters
indexThe index at which to insert the first element from the specified collection
sourceThe Collection containing elements to be added to this list
Returns
true if this list changed as a result of the call
Exceptions
IndexOutOfBoundsExceptionif the index given is less than zero or greater than the List size.
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentExceptionif some property of the element prevents it from being added to this collection
IllegalStateExceptionif the element cannot be added at this time due to insertion restrictions.
This implementation gets an iterator over the specified collection and a list iterator over this list pointing to the indexed element (with listIterator(index)). Then, it iterates over the specified collection, inserting the elements obtained from the iterator into this list, one at a time, using ListIterator.add (to skip over the added element).

This implementation gets an iterator over the specified collection and a list iterator over this list pointing to the indexed element (with listIterator(index)). Then, it iterates over the specified collection, inserting the elements obtained from the iterator into this list, one at a time, using ListIterator.add (to skip over the added element).

Reimplemented from decaf::util::AbstractSequentialList< E >.

template<typename E>
virtual void decaf::util::LinkedList< E >::addFirst ( const E &  element)
inlinevirtual

Inserts an element onto the front of the Deque if possible without violating the implementations capacity restrictions.

For a capacity restricted Deque it is preferable to call offerFirst instead.

Parameters
elementThe element to be placed at the front of the Deque.
Exceptions
IllegalStateExceptionif the element cannot be added at this time due to capacity restrictions
NullPointerExceptionif the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentExceptionif some property of the specified element prevents it from being added to this deque.

Implements decaf::util::Deque< E >.

template<typename E>
virtual void decaf::util::LinkedList< E >::addLast ( const E &  element)
inlinevirtual

Inserts an element onto the end of the Deque if possible without violating the implementations capacity restrictions.

For a capacity restricted Deque it is preferable to call offerLast instead.

Parameters
elementThe element to be placed at the end of the Deque.
Exceptions
IllegalStateExceptionif the element cannot be added at this time due to capacity restrictions
NullPointerExceptionif the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentExceptionif some property of the specified element prevents it from being added to this deque.

Implements decaf::util::Deque< E >.

Referenced by decaf::util::LinkedList< cms::Connection * >::offer().

template<typename E>
virtual void decaf::util::LinkedList< E >::clear ( )
inlinevirtual

Removes all of the elements from this collection (optional operation).

The collection will be empty after this method returns.

This implementation iterates over this collection, removing each element using the Iterator.remove operation. Most implementations will probably choose to override this method for efficiency.

Note that this implementation will throw an UnsupportedOperationException if the iterator returned by this collection's iterator method does not implement the remove method and this collection is non-empty.

Exceptions
UnsupportedOperationExceptionif the clear operation is not supported by this collection

Reimplemented from decaf::util::AbstractList< E >.

Referenced by decaf::util::LinkedList< cms::Connection * >::copy(), and decaf::util::LinkedList< cms::Connection * >::operator=().

template<typename E>
virtual bool decaf::util::LinkedList< E >::contains ( const E &  value) const
inlinevirtual

Returns true if this collection contains the specified element.More formally, returns true if and only if this collection contains at least one element e such that (value == NULL ? e == NULL : value == e ).

Parameters
valueThe value to check for presence in the collection.
Returns
true if there is at least one of the elements in the collection
Exceptions
NullPointerExceptionif the Collection contains pointers and the Collection does not allow for NULL elements (optional check).
This implementation iterates over the elements in the collection, checking each element in turn for equality with the specified element.

This implementation iterates over the elements in the collection, checking each element in turn for equality with the specified element.

Reimplemented from decaf::util::AbstractCollection< E >.

template<typename E>
virtual void decaf::util::LinkedList< E >::copy ( const Collection< E > &  collection)
inlinevirtual

Renders this Collection as a Copy of the given Collection.

The default implementation iterates over the contents of the given collection adding each to this collection after first calling this Collection's clear method.

Parameters
collectionThe collection to mirror.
Exceptions
UnsupportedOperationExceptioif this is an unmodifiable collection.
IllegalStateExceptionif the elements cannot be added at this time due to insertion restrictions.

Reimplemented from decaf::util::AbstractCollection< E >.

template<typename E>
virtual Iterator<E>* decaf::util::LinkedList< E >::descendingIterator ( )
inlinevirtual

Provides an Iterator over this Collection that traverses the element in reverse order.

Returns
a new Iterator instance that moves from last to first.

Implements decaf::util::Deque< E >.

Referenced by decaf::util::LinkedList< cms::Connection * >::removeLastOccurrence().

template<typename E>
virtual Iterator<E>* decaf::util::LinkedList< E >::descendingIterator ( ) const
inlinevirtual
template<typename E>
virtual E decaf::util::LinkedList< E >::element ( ) const
inlinevirtual

Gets but not removes the element in the head of the queue.

Throws a NoSuchElementException if there is no element in the queue.

Returns
the element in the head of the queue.
Exceptions
NoSuchElementExceptionif there is no element in the queue.

Implements decaf::util::Queue< E >.

Referenced by decaf::util::LinkedList< cms::Connection * >::set().

template<typename E>
virtual E decaf::util::LinkedList< E >::get ( int  index) const
inlinevirtual

Gets the element contained at position passed.

Parameters
indexThe position to get.
Returns
value at index specified.
Exceptions
IndexOutOfBoundsExceptionif the index given is less than zero or greater than the List size.
This implementation first gets a list iterator pointing to the indexed element (with listIterator(index)). Then, it gets the element using ListIterator.next and returns it.

This implementation first gets a list iterator pointing to the indexed element (with listIterator(index)). Then, it gets the element using ListIterator.next and returns it.

Reimplemented from decaf::util::AbstractSequentialList< E >.

template<typename E>
virtual E& decaf::util::LinkedList< E >::getFirst ( )
inlinevirtual

Attempts to fetch a reference to the first element in the Deque.

This method does not remove the element from the Deque but simply returns a reference to it.

Returns
reference to the first element in the Deque.
Exceptions
NoSuchElementExceptionif the Deque is empty.

Implements decaf::util::Deque< E >.

template<typename E>
virtual const E& decaf::util::LinkedList< E >::getFirst ( ) const
inlinevirtual
template<typename E>
virtual E& decaf::util::LinkedList< E >::getLast ( )
inlinevirtual

Attempts to fetch a reference to the last element in the Deque.

This method does not remove the element from the Deque but simply returns a reference to it.

Returns
reference to the last element in the Deque.
Exceptions
NoSuchElementExceptionif the Deque is empty.

Implements decaf::util::Deque< E >.

template<typename E>
virtual const E& decaf::util::LinkedList< E >::getLast ( ) const
inlinevirtual
template<typename E>
virtual int decaf::util::LinkedList< E >::indexOf ( const E &  value) const
inlinevirtual

Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element.

More formally, returns the lowest index i such that get(i) == value, or -1 if there is no such index.

Parameters
valueThe element to search for in this List.
Returns
the index of the first occurrence of the specified element in this list,
Exceptions
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.

Reimplemented from decaf::util::AbstractList< E >.

Referenced by decaf::util::LinkedList< cms::Connection * >::contains().

template<typename E>
virtual bool decaf::util::LinkedList< E >::isEmpty ( ) const
inlinevirtual

Returns true if this collection contains no elements.

This implementation returns size() == 0.

Returns
true if the size method return 0.

Reimplemented from decaf::util::AbstractCollection< E >.

template<typename E>
virtual int decaf::util::LinkedList< E >::lastIndexOf ( const E &  value) const
inlinevirtual

Returns the index of the last occurrence of the specified element in this list, or -1 if this list does not contain the element.

More formally, returns the highest index i such that get(i) == value or -1 if there is no such index.

Parameters
valueThe element to search for in this List.
Returns
the index of the last occurrence of the specified element in this list.
Exceptions
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.

Reimplemented from decaf::util::AbstractList< E >.

template<typename E>
virtual ListIterator<E>* decaf::util::LinkedList< E >::listIterator ( int  index)
inlinevirtual
Parameters
indexindex of first element to be returned from the list iterator (by a call to the next method).
Returns
a list iterator of the elements in this list (in proper sequence), starting at the specified position in this list. The specified index indicates the first element that would be returned by an initial call to next. An initial call to previous would return the element with the specified index minus one.
Exceptions
IndexOutOfBoundsExceptionif the index is out of range (index < 0 || index > size())

Reimplemented from decaf::util::AbstractSequentialList< E >.

template<typename E>
virtual ListIterator<E>* decaf::util::LinkedList< E >::listIterator ( int index  ) const
inlinevirtual
template<typename E>
virtual bool decaf::util::LinkedList< E >::offer ( const E &  value)
inlinevirtual

Inserts the specified element into the queue provided that the condition allows such an operation.

The method is generally preferable to the collection.add(E), since the latter might throw an exception if the operation fails.

Parameters
valuethe specified element to insert into the queue.
Returns
true if the operation succeeds and false if it fails.
Exceptions
NullPointerExceptionif the Queue implementation does not allow Null values to be inserted into the Queue.
IllegalArgumentExceptionif some property of the specified element prevents it from being added to this queue

Implements decaf::util::Queue< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::offerFirst ( const E &  element)
inlinevirtual

This method attempts to insert the given element into the Deque at the front end.

Unlike the addFirst method that throws an exception if it cannot insert the element due to capacity restrictions etc this method returns false if it cannot insert the element.

Parameters
elementThe element to add to this Deque.
Returns
true if the element was added, false otherwise.
Exceptions
NullPointerExceptionif the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentExceptionif some property of the specified element prevents it from being added to this deque.

Implements decaf::util::Deque< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::offerLast ( const E &  element)
inlinevirtual

This method attempts to insert the given element into the Deque at the end.

Unlike the addLast method that throws an exception if it cannot insert the element due to capacity restrictions etc this method returns false if it cannot insert the element.

Parameters
elementThe element to add to this Deque.
Returns
true if the element was added, false otherwise.
Exceptions
NullPointerExceptionif the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentExceptionif some property of the specified element prevents it from being added to this deque.

Implements decaf::util::Deque< E >.

template<typename E>
LinkedList<E>& decaf::util::LinkedList< E >::operator= ( const LinkedList< E > &  list)
inline
template<typename E>
LinkedList<E>& decaf::util::LinkedList< E >::operator= ( const Collection< E > &  collection)
inline
template<typename E>
virtual bool decaf::util::LinkedList< E >::peek ( E &  result) const
inlinevirtual

Gets but not removes the element in the head of the queue.

The result if successful is assigned to the result parameter.

Parameters
resultReference to an instance of the contained type to assigned the removed value to.
Returns
true if the element at the head of the queue was removed and assigned to the result parameter.

Implements decaf::util::Queue< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::peekFirst ( E &  value) const
inlinevirtual

Retrieves the first element contained in this Deque and assigns its value to the reference value passed the value however is not removed from the Deque.

If this call is successful it returns true. Unlike getFirst this method does not throw an exception if the Deque is empty.

Returns
true if an element was assigned to the reference passed, false otherwise.

Implements decaf::util::Deque< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::peekLast ( E &  value) const
inlinevirtual

Retrieves the last element contained in this Deque and assigns its value to the reference value passed the value however is not removed from the Deque.

If this call is successful it returns true. Unlike getLast this method does not throw an exception if the Deque is empty.

Returns
true if an element was assigned to the reference passed, false otherwise.

Implements decaf::util::Deque< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::poll ( E &  result)
inlinevirtual

Gets and removes the element in the head of the queue.

If the operation succeeds the value of the element at the head of the Queue is assigned to the result parameter and the method returns true. If the operation fails the method returns false and the value of the result parameter is undefined.

Parameters
resultReference to an instance of the contained type to assigned the removed value to.
Returns
true if the element at the head of the queue was removed and assigned to the result parameter.

Implements decaf::util::Queue< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::pollFirst ( E &  element)
inlinevirtual

Removes the first element from the Deque assigns it to the element reference passed.

Parameters
elementReference to an variable that can be assigned the value of the head of this Deque.
Returns
true if an element was available to remove, false otherwise.

Implements decaf::util::Deque< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::pollLast ( E &  element)
inlinevirtual

Removes the last element from the Deque assigns it to the element reference passed.

Parameters
elementReference to an variable that can be assigned the value of the tail of this Deque.
Returns
true if an element was available to remove, false otherwise.

Implements decaf::util::Deque< E >.

template<typename E>
virtual E decaf::util::LinkedList< E >::pop ( )
inlinevirtual

Treats this Deque as a stack and attempts to pop an element off the top.

If there's no element to pop then a NuSuchElementException is thrown, otherwise the top element is removed and assigned to the reference passed.

This operation performs the same basic function as the removeFirst method.

Returns
the element at the front of this deque which would be the top of a stack.
Exceptions
NoSuchElementExceptionif there is nothing on the top of the stack.

Implements decaf::util::Deque< E >.

template<typename E>
virtual void decaf::util::LinkedList< E >::push ( const E &  element)
inlinevirtual

Pushes an element onto the stack represented by this deque (in other words, at the head of this deque) if it is possible to do so immediately without violating capacity restrictions, otherwise it throwing an IllegalStateException if no space is currently available.

This method performs the same basic operation as the addFirst method.

Parameters
elementThe element to be pushed onto the Deque.
Exceptions
IllegalStateExceptionif the element cannot be added at this time due to capacity restrictions
NullPointerExceptionif the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentExceptionif some property of the specified element prevents it from being added to this deque.

Implements decaf::util::Deque< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::remove ( const E &  value)
inlinevirtual

Removes a single instance of the specified element from the collection.More formally, removes an element e such that (value == NULL ? e == NULL : value == e), if this collection contains one or more such elements. Returns true if this collection contained the specified element (or equivalently, if this collection changed as a result of the call).

Parameters
valueThe reference to the element to remove from this Collection.
Returns
true if the collection was changed, false otherwise.
Exceptions
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
This implementation iterates over the collection looking for the specified element. If it finds the element, it removes the element from the collection using the iterator's remove method.Note that this implementation throws an UnsupportedOperationException if the iterator returned by this collection's iterator method does not implement the remove method and this collection contains the specified object.

This implementation iterates over the collection looking for the specified element. If it finds the element, it removes the element from the collection using the iterator's remove method.

Note that this implementation throws an UnsupportedOperationException if the iterator returned by this collection's iterator method does not implement the remove method and this collection contains the specified object.

Reimplemented from decaf::util::AbstractCollection< E >.

template<typename E>
virtual E decaf::util::LinkedList< E >::remove ( )
inlinevirtual

Gets and removes the element in the head of the queue.

Throws a NoSuchElementException if there is no element in the queue.

Returns
the element in the head of the queue.
Exceptions
NoSuchElementExceptionif there is no element in the queue.

Implements decaf::util::Queue< E >.

template<typename E>
virtual E decaf::util::LinkedList< E >::removeFirst ( )
inlinevirtual

Removes the topmost element from the Deque and returns it.

Unlike the pollFirst method this method throws a NuSuchElementException if the Deque is empty.

Returns
the element at the Head of the Deque.
Exceptions
NoSuchElementExceptionif the Deque is empty.

Implements decaf::util::Deque< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::removeFirstOccurrence ( const E &  value)
inlinevirtual

Removes the first occurrence of the specified element from this Deque.

If there is no matching element then the Deque is left unchanged.

Parameters
valueThe value to be removed from this Deque.
Returns
true if the Deque was modified as a result of this operation.
Exceptions
NullPointerExceptionif the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.

Implements decaf::util::Deque< E >.

Referenced by decaf::util::LinkedList< cms::Connection * >::remove().

template<typename E>
virtual E decaf::util::LinkedList< E >::removeLast ( )
inlinevirtual

Removes the last element from the Deque and returns it.

Unlike the pollLast method this method throws a NuSuchElementException if the Deque is empty.

Returns
the element at the Tail of the Deque.
Exceptions
NoSuchElementExceptionif the Deque is empty.

Implements decaf::util::Deque< E >.

template<typename E>
virtual bool decaf::util::LinkedList< E >::removeLastOccurrence ( const E &  value)
inlinevirtual

Removes the last occurrence of the specified element from this Deque.

If there is no matching element then the Deque is left unchanged.

Parameters
valueThe value to be removed from this Deque.
Returns
true if the Deque was modified as a result of this operation.
Exceptions
NullPointerExceptionif the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.

Implements decaf::util::Deque< E >.

template<typename E>
virtual E decaf::util::LinkedList< E >::set ( int index  ,
const E &  element 
)
inlinevirtual

Replaces the element at the specified position in this list with the specified element.

Parameters
indexThe index of the element to replace.
elementThe element to be stored at the specified position.
Returns
the element previously at the specified position.
Exceptions
IndexOutOfBoundsExceptionif the index given is less than zero or greater than the List size.
UnsupportedOperationExceptioif this is an unmodifiable collection.
NullPointerExceptionif the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentExceptionif some property of the element prevents it from being added to this collection
IllegalStateExceptionif the element cannot be added at this time due to insertion restrictions.
This implementation first gets a list iterator pointing to the indexed element (with listIterator(index)). Then, it gets the current element using ListIterator.next and replaces it with ListIterator.set.

This implementation first gets a list iterator pointing to the indexed element (with listIterator(index)). Then, it gets the current element using ListIterator.next and replaces it with ListIterator.set.

Reimplemented from decaf::util::AbstractSequentialList< E >.

template<typename E>
virtual int decaf::util::LinkedList< E >::size ( ) const
inlinevirtual

Returns the number of elements in this collection.

If this collection contains more than Integer::MAX_VALUE elements, returns Integer::MAX_VALUE.

Returns
the number of elements in this collection

Implements decaf::util::Collection< E >.

template<typename E>
virtual std::vector<E> decaf::util::LinkedList< E >::toArray ( ) const
inlinevirtual

Answers an STL vector containing copies of all elements contained in this Collection.

All the elements in the array will not be referenced by the collection. The elements in the returned array will be sorted to the same order as those returned by the iterator of this collection itself if the collection guarantees the order.

Returns
an vector of copies of all the elements from this Collection

Reimplemented from decaf::util::AbstractCollection< E >.


The documentation for this class was generated from the following file: