diff options
Diffstat (limited to 'libjava/java/util/Vector.java')
-rw-r--r-- | libjava/java/util/Vector.java | 450 |
1 files changed, 0 insertions, 450 deletions
diff --git a/libjava/java/util/Vector.java b/libjava/java/util/Vector.java deleted file mode 100644 index 737c5b498f6..00000000000 --- a/libjava/java/util/Vector.java +++ /dev/null @@ -1,450 +0,0 @@ -/* Copyright (C) 1998, 1999 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -package java.util; - -import java.io.Serializable; - -/** - * @author Warren Levy <warrenl@cygnus.com> - * @date August 17, 1998. - */ -/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 - * "The Java Language Specification", ISBN 0-201-63451-1 - * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. - * Status: Believed complete and correct - */ - -class VectorEnumeration implements Enumeration -{ - private int enumIndex; - private Vector enumVec; - - public VectorEnumeration(Vector vec) - { - enumVec = vec; - enumIndex = 0; - } - - public boolean hasMoreElements() - { - return enumIndex < enumVec.size(); - } - - public Object nextElement() - { - if (!hasMoreElements()) - throw new NoSuchElementException(); - - return enumVec.elementData[enumIndex++]; - } -} - -// TODO12: -// public class Vector extends AbstractList -// implements List, Cloneable, Serializable - -public class Vector implements Cloneable, Serializable -{ - /* The size of the increment to use when growing this vector. - The default of 0 means to double the capacity when growing. */ - protected int capacityIncrement; - - /* The number of elements currently in elementData */ - protected int elementCount; - - /* The buffer in which elements of this vector are stored */ - protected Object[] elementData; - - public Vector() - { - this(10, 0); - } - - public Vector(int initCap) - { - this(initCap, 0); - } - - public Vector(int initCap, int capIncrement) - { - if (initCap < 0) - throw new IllegalArgumentException (); - elementData = new Object[initCap]; - capacityIncrement = capIncrement; - elementCount = 0; - } - - public final synchronized void addElement(Object obj) - { - // Make sure there's room for a new element - if (elementCount == elementData.length) - ensureCapacity(elementCount+1); - - elementData[elementCount++] = obj; - } - - public final int capacity() - { - return elementData.length; - } - - public synchronized Object clone() - { - // New vector needs to have same size, capacity and capacityIncrement - Vector newVec = new Vector(elementData.length, capacityIncrement); - - System.arraycopy(elementData, 0, newVec.elementData, 0, elementCount); - newVec.elementCount = elementCount; - return newVec; - } - - public final boolean contains(Object obj) - { - for (int i = 0; i < elementCount; i++) - { - if (obj == null - ? elementData[i] == null - : obj.equals(elementData[i])) - return true; - } - - return false; - } - - public final synchronized void copyInto(Object[] objArray) - { - System.arraycopy(elementData, 0, objArray, 0, elementCount); - } - - public final synchronized Object elementAt(int idx) - { - if (idx < 0 || idx >= size()) - throw new ArrayIndexOutOfBoundsException(); - - return elementData[idx]; - } - - public final synchronized Enumeration elements() - { - return new VectorEnumeration(this); - } - - public final synchronized void ensureCapacity(int minCap) - { - // Increasing the vector could make it much larger than minCap; - // e.g. if minCap is just larger than the vector, size may double. - // If someone cares about this possibility they should set capacityIncrement - if (minCap > elementData.length) - { - // Increase the vector; double it if capacityIncrement is zero - int newSize = elementData.length; - newSize += - (capacityIncrement > 0) ? capacityIncrement : elementData.length; - - // Make sure newSize is at least minCap - if (newSize < minCap) - newSize = minCap; - - Object[] newArray = new Object[newSize]; - System.arraycopy(elementData, 0, newArray, 0, elementCount); - elementData = newArray; - } - } - - public final synchronized Object firstElement() - { - if (elementCount == 0) - throw new NoSuchElementException(); - - return elementData[0]; - } - - public final int indexOf(Object obj) - { - return indexOf(obj, 0); - } - - public final synchronized int indexOf(Object obj, int idx) - { - if (idx < 0) - throw new IllegalArgumentException (); - for (int i = idx; i < elementCount; i++) - { - if (obj == null - ? elementData[i] == null - : obj.equals(elementData[i])) - return i; - } - - return -1; - } - - public final synchronized void insertElementAt(Object obj, int idx) - { - if (idx < 0 || idx > size()) - throw new ArrayIndexOutOfBoundsException(); - else if (idx == size()) // Spec says just use addElement() - addElement(obj); - else - { - // Make sure there's room for a new element - if (elementCount == elementData.length) - ensureCapacity(elementCount+1); - - // Shift the existing elements up and increment elementCount - for (int i = elementCount++; i > idx; --i) - elementData[i] = elementData[i-1]; - - elementData[idx] = obj; - } - } - - public final boolean isEmpty() - { - return elementCount == 0; - } - - public final synchronized Object lastElement() - { - if (elementCount == 0) - throw new NoSuchElementException(); - - return elementData[elementCount - 1]; - } - - public final int lastIndexOf(Object obj) - { - return lastIndexOf(obj, size()-1); - } - - public final synchronized int lastIndexOf(Object obj, int idx) - { - if (idx < 0) - throw new IllegalArgumentException (); - for (int i = idx; i >= 0; --i) - { - if (obj == null - ? elementData[i] == null - : obj.equals(elementData[i])) - return i; - } - - return -1; - } - - public final synchronized void removeAllElements() - { - // Remove elements now to assist the gc in early cleanup - for (int i = elementCount-1; i >= 0; --i) - elementData[i] = null; - elementCount = 0; - } - - public final synchronized boolean removeElement(Object obj) - { - for (int i = 0; i < elementCount; i++) - { - if (obj == null - ? elementData[i] == null - : obj.equals(elementData[i])) - { - int j; - - // Decrement count first to ensure we don't walk off end of array - --elementCount; - - for (j = i; j < elementCount; j++) - elementData[j] = elementData[j+1]; - - // At this point, j was incrememented and points to old last element - // Remove element now to assist the gc in early cleanup - elementData[j] = null; - return true; - } - } - - return false; - } - - public final synchronized void removeElementAt(int idx) - { - int i; - - if (idx < 0 || idx >= size()) - throw new ArrayIndexOutOfBoundsException(); - - // Decrement count first to ensure we don't walk off the end of the array - --elementCount; - - for (i = idx; i < elementCount; i++) - elementData[i] = elementData[i+1]; - - // At this point, i was incrememented and now points to the old last element - // Remove element now to assist the gc in early cleanup - elementData[i] = null; - } - - public final synchronized void setElementAt(Object obj, int idx) - { - if (idx < 0 || idx >= size()) - throw new ArrayIndexOutOfBoundsException(); - - elementData[idx] = obj; - } - - public final synchronized void setSize(int newSize) - { - if (newSize < 0) - throw new ArrayIndexOutOfBoundsException(); - - // Java Lang Spec p. 658 says to remove the excess elements and discard - // when new size is smaller than old size. - // When truncating, we could alternatively just reset elementCount instead - // of freeing up the memory if the spec hadn't specified. The spec makes - // sense though; if someone cares enough to call a setSize() function - // they probably are doing so to free memory. - if (newSize < elementCount) - { - elementCount = newSize; - trimToSize(); - } - else if (newSize > elementCount) // Skip == case - { - // TBD: ensureCapacity() may create a vector much larger than newSize; - // do we want to make the vector exactly newSize? Spec is unclear. - ensureCapacity(newSize); - - // Make sure to null out new elements of grown vector - for (int i = elementCount; i < newSize; i++) - elementData[i] = null; - elementCount = newSize; - } - } - - public final int size() - { - return elementCount; - } - - public final synchronized String toString() - { - // Following the Java Lang Spec p. 656 - - // Prepend first element with open bracket - StringBuffer result = new StringBuffer("["); - - if (elementCount > 0) // add first element if one exists - result.append(elementData[0].toString()); - - // Prepend subsequent elements with ", " - for (int i = 1; i < elementCount; i++) - result.append(", ").append(elementData[i].toString()); - - // Append last element with closing bracket - result.append("]"); - return result.toString(); - } - - public final synchronized void trimToSize() - { - // Give up excess storage capacity to save memory - // - // Don't bother checking for the case where size() == the capacity of the - // vector since that is a much less likely case; it's more efficient to - // not do the check and lose a bit of performance in that infrequent case - Object[] newArray = new Object[elementCount]; - System.arraycopy(elementData, 0, newArray, 0, elementCount); - elementData = newArray; - } - - // TODO12: - // public Vector(Collection c) - // { - // } - - // TODO12: - // public public boolean add(Object o) - // { - // } - - // TODO12: - // public void add(int index, Object element) - // { - // } - - // TODO12: - // public boolean addAll(Collection c) - // { - // } - - // TODO12: - // public boolean addAll(int index, Collection c) - // { - // } - - // TODO12: - // public void clear() - // { - // } - - // TODO12: - // public boolean containsAll(Collection c) - // { - // } - - // TODO12: - // public boolean equals(Object o) - // { - // } - - // TODO12: - // public int hashCode() - // { - // } - - // TODO12: - // public Object get(int index) - // { - // } - - // TODO12: - // public boolean remove(Object o) - // { - // } - - // TODO12: - // public Object remove(int index) - // { - // } - - // TODO12: - // public boolean removeAll(Collection c) - // { - // } - - // TODO12: - // public boolean retainAll(Collection c) - // { - // } - - // TODO12: - // public Object set(int index, Object element) - // { - // } - - // TODO12: - // public Object[] toArray() - // { - // } - - // TODO12: - // public Object[] toArray(Object[] a) - // { - // } -} |