package org.andengine.util.adt.queue.concurrent; import org.andengine.util.adt.queue.IQueue; /** * (c) Zynga 2012 * * @author Nicolas Gramlich <ngramlich@zynga.com> * @since 14:23:50 - 01.02.2012 */ public class SynchronizedQueue<T> implements IQueue<T> { // =========================================================== // Constants // =========================================================== // =========================================================== // Fields // =========================================================== private final IQueue<T> mQueue; // =========================================================== // Constructors // =========================================================== public SynchronizedQueue(final IQueue<T> pQueue) { this.mQueue = pQueue; } // =========================================================== // Getter & Setter // =========================================================== // =========================================================== // Methods for/from SuperClass/Interfaces // =========================================================== @Override public synchronized boolean isEmpty() { return this.mQueue.isEmpty(); } @Override public synchronized T get(final int pIndex) throws IndexOutOfBoundsException { return this.mQueue.get(pIndex); } @Override public synchronized void set(int pIndex, T pItem) throws IndexOutOfBoundsException { this.mQueue.set(pIndex, pItem); } @Override public synchronized int indexOf(final T pItem) { return this.mQueue.indexOf(pItem); } @Override public synchronized void add(final T pItem) { this.mQueue.add(pItem); } @Override public synchronized void add(final int pIndex, final T pItem) throws IndexOutOfBoundsException { this.mQueue.add(pIndex, pItem); } @Override public synchronized T peek() { return this.mQueue.peek(); } @Override public synchronized T poll() { return this.mQueue.poll(); } @Override public synchronized void enter(final T pItem) { this.mQueue.enter(pItem); } @Override public synchronized void enter(final int pIndex, final T pItem) throws IndexOutOfBoundsException{ this.mQueue.enter(pIndex, pItem); } @Override public synchronized T removeFirst() { return this.mQueue.removeFirst(); } @Override public synchronized T removeLast() { return this.mQueue.removeLast(); } @Override public synchronized boolean remove(final T pItem) { return this.mQueue.remove(pItem); } @Override public synchronized T remove(final int pIndex) throws IndexOutOfBoundsException{ return this.mQueue.remove(pIndex); } @Override public synchronized int size() { return this.mQueue.size(); } @Override public synchronized void clear() { this.mQueue.clear(); } // =========================================================== // Methods // =========================================================== // =========================================================== // Inner and Anonymous Classes // =========================================================== }