org.eigenbase.util
Class CastingList<E>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
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
Methods inherited from class java.util.AbstractList |
add, addAll, clear, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, removeRange, subList |
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 |
list
private final List<? super E> list
clazz
private final Class<E> clazz
CastingList
protected CastingList(List<? super E> list,
Class<E> clazz)
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>