/* This file was generated by SableCC (http://www.sablecc.org/). */
package soot.jimple.parser.node;
import java.util.*;
public class TypedLinkedList extends LinkedList
{
Cast cast;
public TypedLinkedList()
{
super();
cast = NoCast.instance;
}
public TypedLinkedList(Collection c)
{
super();
cast = NoCast.instance;
this.addAll(c);
}
public TypedLinkedList(Cast cast)
{
super();
this.cast = cast;
}
public TypedLinkedList(Collection c, Cast cast)
{
super();
this.cast = cast;
this.addAll(c);
}
public Cast getCast()
{
return cast;
}
public void add(int index, Object element)
{
super.add(index, cast.cast(element));
}
public boolean add(Object o)
{
return super.add(cast.cast(o));
}
public boolean addAll(Collection c)
{
for(Iterator i = c.iterator(); i.hasNext(); )
{
super.add(cast.cast(i.next()));
}
return true;
}
public boolean addAll(int index, Collection c)
{
int pos = index;
for(Iterator i = c.iterator(); i.hasNext(); )
{
super.add(pos++, cast.cast(i.next()));
}
return true;
}
public void addFirst(Object o)
{
super.addFirst(cast.cast(o));
}
public void addLast(Object o)
{
super.addLast(cast.cast(o));
}
public ListIterator listIterator(int index)
{
return new TypedLinkedListIterator(super.listIterator(index));
}
private class TypedLinkedListIterator implements ListIterator
{
ListIterator iterator;
TypedLinkedListIterator(ListIterator iterator)
{
this.iterator = iterator;
}
public boolean hasNext()
{
return iterator.hasNext();
}
public Object next()
{
return iterator.next();
}
public boolean hasPrevious()
{
return iterator.hasPrevious();
}
public Object previous()
{
return iterator.previous();
}
public int nextIndex()
{
return iterator.nextIndex();
}
public int previousIndex()
{
return iterator.previousIndex();
}
public void remove()
{
iterator.remove();
}
public void set(Object o)
{
iterator.set(cast.cast(o));
}
public void add(Object o)
{
iterator.add(cast.cast(o));
}
}
}