ListWrappingQueue.java

/*
 * Copyright (C) 2020 XStream Committers.
 * All rights reserved.
 *
 * The software in this package is published under the terms of the BSD
 * style license a copy of which has been included with this distribution in
 * the LICENSE.txt file.
 *
 * Created on 22. Mai 2020 by Joerg Schaible
 */
package com.thoughtworks.xstream.core.util;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Queue;

/**
 * A Queue wrapper for a list
 * 
 * @author Jörg Schaible
 * @since upcoming
 */
public final class ListWrappingQueue<E> implements Queue<E> {
    private final List<E> list;

    /**
     * Constructs a QueueImplementation.
     * 
     * @param list
     * @since upcoming
     */
    public ListWrappingQueue(final List<E> list) {
        this.list = list;
    }

    @Override
    public int size() {
        return this.list.size();
    }

    @Override
    public boolean isEmpty() {
        return this.list.isEmpty();
    }

    @Override
    public boolean contains(final Object o) {
        return this.list.contains(o);
    }

    @Override
    public Iterator<E> iterator() {
        return this.list.iterator();
    }

    @Override
    public Object[] toArray() {
        return this.list.toArray();
    }

    @Override
    public <T> T[] toArray(final T[] a) {
        return this.list.toArray(a);
    }

    @Override
    public boolean remove(final Object o) {
        return this.list.remove(o);
    }

    @Override
    public boolean containsAll(final Collection<?> c) {
        return this.list.containsAll(c);
    }

    @Override
    public boolean addAll(final Collection<? extends E> c) {
        return this.list.addAll(c);
    }

    @Override
    public boolean removeAll(final Collection<?> c) {
        return this.list.removeAll(c);
    }

    @Override
    public boolean retainAll(final Collection<?> c) {
        return this.list.retainAll(c);
    }

    @Override
    public void clear() {
        this.list.clear();
    }

    @Override
    public boolean add(final E e) {
        return this.list.add(e);
    }

    @Override
    public boolean offer(final E e) {
        return this.list.add(e);
    }

    @Override
    public E remove() {
        return this.list.remove(0);
    }

    @Override
    public E poll() {
        return this.list.remove(0);
    }

    @Override
    public E element() {
        return this.list.get(0);
    }

    @Override
    public E peek() {
        return this.list.get(0);
    }
}