package de.frajul.endlessroll.data;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * Created by Julian on 16.11.2016.
 */

public class SynchronizedArrayList<E> extends ArrayList<E> {

    @Override
    public synchronized String toString() {
        return super.toString();
    }

    @Override
    public synchronized boolean add(E object) {
        return super.add(object);
    }

    @Override
    public synchronized void add(int index, E object) {
        super.add(index, object);
    }

    @Override
    public synchronized boolean addAll(Collection<? extends E> collection) {
        return super.addAll(collection);
    }

    @Override
    public synchronized boolean addAll(int index, Collection<? extends E> collection) {
        return super.addAll(index, collection);
    }

    @Override
    public synchronized void clear() {
        super.clear();
    }

    @Override
    public synchronized Object clone() {
        return super.clone();
    }

    @Override
    public synchronized void ensureCapacity(int minimumCapacity) {
        super.ensureCapacity(minimumCapacity);
    }

    @Override
    public synchronized E get(int index) {
        return super.get(index);
    }

    @Override
    public synchronized int size() {
        return super.size();
    }

    @Override
    public synchronized boolean isEmpty() {
        return super.isEmpty();
    }

    @Override
    public synchronized boolean contains(Object object) {
        return super.contains(object);
    }

    @Override
    public synchronized int indexOf(Object object) {
        return super.indexOf(object);
    }

    @Override
    public synchronized int lastIndexOf(Object object) {
        return super.lastIndexOf(object);
    }

    @Override
    public synchronized E remove(int index) {
        return super.remove(index);
    }

    @Override
    public synchronized boolean remove(Object object) {
        return super.remove(object);
    }

    @Override
    protected synchronized void removeRange(int fromIndex, int toIndex) {
        super.removeRange(fromIndex, toIndex);
    }

    @Override
    public synchronized E set(int index, E object) {
        return super.set(index, object);
    }

    @Override
    public synchronized Object[] toArray() {
        return super.toArray();
    }

    @Override
    public synchronized <T> T[] toArray(T[] contents) {
        return super.toArray(contents);
    }

    @Override
    public synchronized void trimToSize() {
        super.trimToSize();
    }

    @Override
    public synchronized int hashCode() {
        return super.hashCode();
    }

    @Override
    public synchronized boolean equals(Object o) {
        return super.equals(o);
    }

    @Override
    public synchronized List<E> subList(int start, int end) {
        return super.subList(start, end);
    }

    @Override
    public synchronized boolean containsAll(Collection<?> collection) {
        return super.containsAll(collection);
    }

    @Override
    public synchronized boolean removeAll(Collection<?> collection) {
        return super.removeAll(collection);
    }

    @Override
    public synchronized boolean retainAll(Collection<?> collection) {
        return super.retainAll(collection);
    }
}
