diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/event/Queue.java')
-rw-r--r-- | bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/event/Queue.java | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/event/Queue.java b/bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/event/Queue.java deleted file mode 100644 index e507a9e61..000000000 --- a/bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/event/Queue.java +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - * Copyright (c) 1997-2007 by ProSyst Software GmbH - * http://www.prosyst.com - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * ProSyst Software GmbH - initial API and implementation - *******************************************************************************/ - -package org.eclipse.equinox.internal.util.event; - -/** - * @author Pavlin Dobrev - * @version 1.0 - */ - -public class Queue { - - protected Object[] queue; - protected int first, last = -1; - protected int initial, count; - protected int increment; - protected int decrement; - - public Queue(int size) { - queue = new Object[initial = size]; - increment = initial / 2; - decrement = increment + (increment / 2); - } - - public void put(Object element) { - if (count == queue.length) - resize(true); - queue[++last == queue.length ? last = 0 : last] = element; - count++; - } - - public void unget(Object element) { - if (count == queue.length) - resize(true); - queue[--first == -1 ? first = queue.length - 1 : first] = element; - count++; - } - - public Object get() { - if (count == 0) - return null; - if (queue.length > initial && queue.length - count > decrement) - resize(false); - Object element = queue[first]; - queue[first++] = null; - if (first == queue.length) - first = 0; - count--; - return element; - } - - public void clear() { - if (queue.length > initial) { - queue = new Object[initial]; - count = 0; - } else - for (; count > 0; count--) { - queue[first++] = null; - if (first == queue.length) - first = 0; - } - first = 0; - last = -1; - } - - public int size() { - return count; - } - - protected void resize(boolean up) { - Object[] tmp = new Object[queue.length + (up ? increment : -increment)]; - if (first <= last) - System.arraycopy(queue, first, tmp, 0, count); - else { - int count1 = queue.length - first; - if (count1 > 0) - System.arraycopy(queue, first, tmp, 0, count1); - if (count > count1) - System.arraycopy(queue, 0, tmp, count1, count - count1); - } - queue = tmp; - first = 0; - last = count - 1; - - increment = queue.length / 2; - decrement = increment + (increment / 2); - } -} |