org.eigenbase.util
Class CastingList<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<E>
          extended by org.eigenbase.util.CastingList<E>
All Implemented Interfaces:
Iterable<E>, Collection<E>, List<E>

public class CastingList<E>
extends AbstractList<E>
implements List<E>

Converts a list whose members are automatically down-cast to a given type.

If a member of the backing list is not an instanceof E, the accessing method (such as List.get(int)) will throw a ClassCastException.

All modifications are automatically written to the backing list. Not synchronized.

Version:
$Id: //open/dev/farrago/src/org/eigenbase/util/CastingList.java#5 $
Author:
jhyde

Field Summary
private  Class<E> clazz
           
private  List<? super E> list
           
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
protected CastingList(List<? super E> list, Class<E> clazz)
           
 
Method Summary
 void add(int pos, E o)
           
 E get(int index)
           
 E remove(int index)
           
 E set(int index, E element)
           
 int size()
           
 
Methods inherited from class java.util.AbstractList
add, addAll, clear, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, removeRange, subList
 
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, 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, addAll, clear, contains, containsAll, equals, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, removeAll, retainAll, subList, toArray, toArray
 

Field Detail

list

private final List<? super E> list

clazz

private final Class<E> clazz
Constructor Detail

CastingList

protected CastingList(List<? super E> list,
                      Class<E> clazz)
Method Detail

get

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

size

public int size()
Specified by:
size in interface Collection<E>
Specified by:
size in interface List<E>
Specified by:
size in class AbstractCollection<E>

set

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

remove

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

add

public void add(int pos,
                E o)
Specified by:
add in interface List<E>
Overrides:
add in class AbstractList<E>