com.google.common.collect
Class ForwardingList<E>

java.lang.Object
  extended by com.google.common.collect.ForwardingObject
      extended by com.google.common.collect.ForwardingCollection<E>
          extended by com.google.common.collect.ForwardingList<E>
All Implemented Interfaces:
Iterable<E>, Collection<E>, List<E>

public abstract class ForwardingList<E>
extends ForwardingCollection<E>
implements List<E>

A list which forwards all its method calls to another list. Subclasses should override one or more methods to modify the behavior of the backing list as desired per the decorator pattern.

This class does not implement RandomAccess. If the delegate supports random access, the ForwadingList subclass should implement the RandomAccess interface.

Since:
2010.01.04 stable (imported from Google Collections Library)
Author:
Mike Bostock

Constructor Summary
ForwardingList()
           
 
Method Summary
 void add(int index, E element)
           
 boolean addAll(int index, Collection<? extends E> elements)
           
protected abstract  List<E> delegate()
          Returns the backing delegate instance that methods are forwarded to.
 boolean equals(Object object)
           
 E get(int index)
           
 int hashCode()
           
 int indexOf(Object element)
           
 int lastIndexOf(Object element)
           
 ListIterator<E> listIterator()
           
 ListIterator<E> listIterator(int index)
           
 E remove(int index)
           
 E set(int index, E element)
           
 List<E> subList(int fromIndex, int toIndex)
           
 
Methods inherited from class com.google.common.collect.ForwardingCollection
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 
Methods inherited from class com.google.common.collect.ForwardingObject
toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

Constructor Detail

ForwardingList

public ForwardingList()
Method Detail

delegate

protected abstract List<E> delegate()
Description copied from class: ForwardingObject
Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such as ForwardingSet.delegate(). Concrete subclasses override this method to supply the instance being decorated.

Specified by:
delegate in class ForwardingCollection<E>

add

public void add(int index,
                E element)
Specified by:
add in interface List<E>

addAll

public boolean addAll(int index,
                      Collection<? extends E> elements)
Specified by:
addAll in interface List<E>

get

public E get(int index)
Specified by:
get in interface List<E>

indexOf

public int indexOf(Object element)
Specified by:
indexOf in interface List<E>

lastIndexOf

public int lastIndexOf(Object element)
Specified by:
lastIndexOf in interface List<E>

listIterator

public ListIterator<E> listIterator()
Specified by:
listIterator in interface List<E>

listIterator

public ListIterator<E> listIterator(int index)
Specified by:
listIterator in interface List<E>

remove

public E remove(int index)
Specified by:
remove in interface List<E>

set

public E set(int index,
             E element)
Specified by:
set in interface List<E>

subList

public List<E> subList(int fromIndex,
                       int toIndex)
Specified by:
subList in interface List<E>

equals

public boolean equals(@Nullable
                      Object object)
Specified by:
equals in interface Collection<E>
Specified by:
equals in interface List<E>
Overrides:
equals in class Object

hashCode

public int hashCode()
Specified by:
hashCode in interface Collection<E>
Specified by:
hashCode in interface List<E>
Overrides:
hashCode in class Object