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 >:
Inheritance graph
[legend]

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)
 Assignment Operator, copy element from the source collection to this collection after clearing any element stored in this collection.
LinkedList< E > & operator= (const Collection< E > &collection)
bool operator== (const LinkedList< E > &other) const
bool operator!= (const LinkedList< E > &other) const
virtual E get (int index) const
 Gets the element contained at position passed.
Parameters:
index The position to get.
Returns:
value at index specified.
Exceptions:
IndexOutOfBoundsException if 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:
index The index of the element to replace.
element The element to be stored at the specified position.
Returns:
the element previously at the specified position.
Exceptions:
IndexOutOfBoundsException if the index given is less than zero or greater than the List size.
UnsupportedOperationExceptio if this is an unmodifiable collection.
NullPointerException if the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentException if some property of the element prevents it from being added to this collection
IllegalStateException if 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:
index The index at which the specified element is to be inserted.
element The element to be inserted in this List.
Exceptions:
IndexOutOfBoundsException if the index is greater than size of the List.
UnsupportedOperationExceptio if this is an unmodifiable collection.
NullPointerException if the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentException if some property of the element prevents it from being added to this collection
IllegalStateException if 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)
 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:
index The index at which to insert the first element from the specified collection
source The Collection containing elements to be added to this list
Returns:
true if this list changed as a result of the call
Exceptions:
IndexOutOfBoundsException if the index given is less than zero or greater than the List size.
UnsupportedOperationExceptio if this is an unmodifiable collection.
NullPointerException if the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentException if some property of the element prevents it from being added to this collection
IllegalStateException if 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:
value The reference to the element to remove from this Collection.
Returns:
true if the collection was changed, false otherwise.
Exceptions:
UnsupportedOperationExceptio if this is an unmodifiable collection.
NullPointerException if 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:
value The value to check for presence in the collection.
Returns:
true if there is at least one of the elements in the collection
Exceptions:
NullPointerException if 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

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 (  )  [inline, virtual]

Member Function Documentation

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

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:
index The index at which the specified element is to be inserted.
element The element to be inserted in this List.
Exceptions:
IndexOutOfBoundsException if the index is greater than size of the List.
UnsupportedOperationExceptio if this is an unmodifiable collection.
NullPointerException if the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentException if some property of the element prevents it from being added to this collection
IllegalStateException if 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 >::add ( const E &  value  )  [inline, virtual]

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:
value The reference to the element to add to this Collection.
Returns:
true if the element was added to this Collection.
Exceptions:
UnsupportedOperationExceptio if this is an unmodifiable collection.
NullPointerException if the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentException if some property of the element prevents it from being added to this collection
IllegalStateException if the element cannot be added at this time due to insertion restrictions.

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

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

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:
index The index at which to insert the first element from the specified collection
source The Collection containing elements to be added to this list
Returns:
true if this list changed as a result of the call
Exceptions:
IndexOutOfBoundsException if the index given is less than zero or greater than the List size.
UnsupportedOperationExceptio if this is an unmodifiable collection.
NullPointerException if the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentException if some property of the element prevents it from being added to this collection
IllegalStateException if 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 bool decaf::util::LinkedList< E >::addAll ( const Collection< E > &  collection  )  [inline, virtual]

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 void decaf::util::LinkedList< E >::addFirst ( const E &  element  )  [inline, virtual]

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:
element The element to be placed at the front of the Deque.
Exceptions:
IllegalStateException if the element cannot be added at this time due to capacity restrictions
NullPointerException if the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentException if 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  )  [inline, virtual]

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:
element The element to be placed at the end of the Deque.
Exceptions:
IllegalStateException if the element cannot be added at this time due to capacity restrictions
NullPointerException if the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentException if 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 (  )  [inline, virtual]

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:
UnsupportedOperationException if 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 [inline, virtual]

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:
value The value to check for presence in the collection.
Returns:
true if there is at least one of the elements in the collection
Exceptions:
NullPointerException if 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  )  [inline, virtual]

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:
collection The collection to mirror.
Exceptions:
UnsupportedOperationExceptio if this is an unmodifiable collection.
IllegalStateException if 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 (  )  const [inline, virtual]
template<typename E>
virtual Iterator<E>* decaf::util::LinkedList< E >::descendingIterator (  )  [inline, virtual]

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 E decaf::util::LinkedList< E >::element (  )  const [inline, virtual]

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:
NoSuchElementException if 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 [inline, virtual]

Gets the element contained at position passed.

Parameters:
index The position to get.
Returns:
value at index specified.
Exceptions:
IndexOutOfBoundsException if 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 const E& decaf::util::LinkedList< E >::getFirst (  )  const [inline, virtual]
template<typename E>
virtual E& decaf::util::LinkedList< E >::getFirst (  )  [inline, virtual]

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:
NoSuchElementException if the Deque is empty.

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

template<typename E>
virtual const E& decaf::util::LinkedList< E >::getLast (  )  const [inline, virtual]
template<typename E>
virtual E& decaf::util::LinkedList< E >::getLast (  )  [inline, virtual]

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:
NoSuchElementException if the Deque is empty.

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

template<typename E>
virtual int decaf::util::LinkedList< E >::indexOf ( const E &  value  )  const [inline, virtual]

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:
value The element to search for in this List.
Returns:
the index of the first occurrence of the specified element in this list,
Exceptions:
NullPointerException if 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 [inline, virtual]

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 [inline, virtual]

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:
value The element to search for in this List.
Returns:
the index of the last occurrence of the specified element in this list.
Exceptions:
NullPointerException if 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   )  const [inline, virtual]
template<typename E>
virtual ListIterator<E>* decaf::util::LinkedList< E >::listIterator ( int  index  )  [inline, virtual]
Parameters:
index index 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:
IndexOutOfBoundsException if the index is out of range (index < 0 || index > size())

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

template<typename E>
virtual bool decaf::util::LinkedList< E >::offer ( const E &  value  )  [inline, virtual]

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:
value the specified element to insert into the queue.
Returns:
true if the operation succeeds and false if it fails.
Exceptions:
NullPointerException if the Queue implementation does not allow Null values to be inserted into the Queue.
IllegalArgumentException if 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  )  [inline, virtual]

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:
element The element to add to this Deque.
Returns:
true if the element was added, false otherwise.
Exceptions:
NullPointerException if the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentException if 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  )  [inline, virtual]

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:
element The element to add to this Deque.
Returns:
true if the element was added, false otherwise.
Exceptions:
NullPointerException if the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentException if some property of the specified element prevents it from being added to this deque.

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

template<typename E>
bool decaf::util::LinkedList< E >::operator!= ( const LinkedList< E > &  other  )  const [inline]
template<typename E>
LinkedList<E>& decaf::util::LinkedList< E >::operator= ( const Collection< E > &  collection  )  [inline]
template<typename E>
LinkedList<E>& decaf::util::LinkedList< E >::operator= ( const LinkedList< E > &  collection  )  [inline]

Assignment Operator, copy element from the source collection to this collection after clearing any element stored in this collection.

Parameters:
collection - the collection to copy
Returns:
a reference to this collection

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

template<typename E>
bool decaf::util::LinkedList< E >::operator== ( const LinkedList< E > &  other  )  const [inline]
template<typename E>
virtual bool decaf::util::LinkedList< E >::peek ( E &  result  )  const [inline, virtual]

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

The result if successful is assigned to the result parameter.

Parameters:
result Reference 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 [inline, virtual]

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 [inline, virtual]

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  )  [inline, virtual]

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:
result Reference 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  )  [inline, virtual]

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

Parameters:
element Reference 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  )  [inline, virtual]

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

Parameters:
element Reference 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 (  )  [inline, virtual]

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:
NoSuchElementException if 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  )  [inline, virtual]

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:
element The element to be pushed onto the Deque.
Exceptions:
IllegalStateException if the element cannot be added at this time due to capacity restrictions
NullPointerException if the specified element is NULL and this deque is a Collection of pointers and does not permit null elements.
IllegalArgumentException if some property of the specified element prevents it from being added to this deque.

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

template<typename E>
virtual E decaf::util::LinkedList< E >::remove (  )  [inline, virtual]

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:
NoSuchElementException if there is no element in the queue.

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

template<typename E>
virtual bool decaf::util::LinkedList< E >::remove ( const E &  value  )  [inline, virtual]

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:
value The reference to the element to remove from this Collection.
Returns:
true if the collection was changed, false otherwise.
Exceptions:
UnsupportedOperationExceptio if this is an unmodifiable collection.
NullPointerException if 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 >::removeFirst (  )  [inline, virtual]

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:
NoSuchElementException if the Deque is empty.

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

template<typename E>
virtual bool decaf::util::LinkedList< E >::removeFirstOccurrence ( const E &  value  )  [inline, virtual]

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

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

Parameters:
value The value to be removed from this Deque.
Returns:
true if the Deque was modified as a result of this operation.
Exceptions:
NullPointerException if 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 (  )  [inline, virtual]

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:
NoSuchElementException if the Deque is empty.

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

template<typename E>
virtual bool decaf::util::LinkedList< E >::removeLastOccurrence ( const E &  value  )  [inline, virtual]

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

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

Parameters:
value The value to be removed from this Deque.
Returns:
true if the Deque was modified as a result of this operation.
Exceptions:
NullPointerException if 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 
) [inline, virtual]

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

Parameters:
index The index of the element to replace.
element The element to be stored at the specified position.
Returns:
the element previously at the specified position.
Exceptions:
IndexOutOfBoundsException if the index given is less than zero or greater than the List size.
UnsupportedOperationExceptio if this is an unmodifiable collection.
NullPointerException if the Collection is a container of pointers and does not allow NULL values.
IllegalArgumentException if some property of the element prevents it from being added to this collection
IllegalStateException if 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 [inline, virtual]

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 [inline, virtual]

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:

Generated on 1 Dec 2014 for activemq-cpp-3.8.2 by  doxygen 1.6.1