package com.revolsys.collection.list;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public abstract class AbstractDelegatingList<T> implements List<T> {
@Override
public void add(final int index, final T element) {
final List<T> list = getList();
list.add(index, element);
}
@Override
public boolean add(final T e) {
final List<T> list = getList();
return list.add(e);
}
@Override
public boolean addAll(final Collection<? extends T> c) {
final List<T> list = getList();
return list.addAll(c);
}
@Override
public boolean addAll(final int index, final Collection<? extends T> c) {
final List<T> list = getList();
return list.addAll(c);
}
@Override
public void clear() {
final List<T> list = getList();
list.clear();
}
@Override
public boolean contains(final Object o) {
final List<T> list = getList();
return list.contains(o);
}
@Override
public boolean containsAll(final Collection<?> c) {
final List<T> list = getList();
return list.containsAll(c);
}
@Override
public boolean equals(final Object obj) {
final List<T> list = getList();
return list.equals(obj);
}
@Override
public T get(final int index) {
final List<T> list = getList();
return list.get(index);
}
protected abstract List<T> getList();
@Override
public int hashCode() {
final List<T> list = getList();
return list.hashCode();
}
@Override
public int indexOf(final Object o) {
final List<T> list = getList();
return list.indexOf(o);
}
@Override
public boolean isEmpty() {
final List<T> list = getList();
return list.isEmpty();
}
@Override
public Iterator<T> iterator() {
final List<T> list = getList();
return list.iterator();
}
@Override
public int lastIndexOf(final Object o) {
final List<T> list = getList();
return list.lastIndexOf(o);
}
@Override
public ListIterator<T> listIterator() {
final List<T> list = getList();
return list.listIterator();
}
@Override
public ListIterator<T> listIterator(final int index) {
final List<T> list = getList();
return list.listIterator(index);
}
@Override
public T remove(final int index) {
final List<T> list = getList();
return list.remove(index);
}
@Override
public boolean remove(final Object o) {
final List<T> list = getList();
return list.remove(o);
}
@Override
public boolean removeAll(final Collection<?> c) {
final List<T> list = getList();
return list.removeAll(c);
}
@Override
public boolean retainAll(final Collection<?> c) {
final List<T> list = getList();
return list.retainAll(c);
}
@Override
public T set(final int index, final T element) {
final List<T> list = getList();
return list.set(index, element);
}
@Override
public int size() {
final List<T> list = getList();
return list.size();
}
@Override
public List<T> subList(final int fromIndex, final int toIndex) {
final List<T> list = getList();
return list.subList(fromIndex, toIndex);
}
@Override
public Object[] toArray() {
final List<T> list = getList();
return list.toArray();
}
@Override
public <V> V[] toArray(final V[] a) {
final List<T> list = getList();
return list.toArray(a);
}
@Override
public String toString() {
final List<T> list = getList();
return list.toString();
}
}