home *** CD-ROM | disk | FTP | other *** search
- package netscape.util;
-
- public class Vector implements Cloneable, Codable {
- Object[] array;
- int count;
- static final String ARRAY_KEY = "array";
-
- public Vector() {
- this.count = 0;
- }
-
- public Vector(int var1) {
- this.array = new Object[var1];
- this.count = 0;
- }
-
- public Object clone() {
- Vector var1;
- try {
- var1 = (Vector)super.clone();
- } catch (CloneNotSupportedException var2) {
- throw new InternalError("Error in clone(). This shouldn't happen.");
- }
-
- if (this.count == 0) {
- var1.array = null;
- return var1;
- } else {
- var1.array = new Object[this.count];
- System.arraycopy(this.array, 0, var1.array, 0, this.count);
- return var1;
- }
- }
-
- public int count() {
- return this.count;
- }
-
- public int size() {
- return this.count;
- }
-
- public boolean isEmpty() {
- return this.count == 0;
- }
-
- public void addElementIfAbsent(Object var1) {
- if (var1 == null) {
- throw new NullPointerException("It is illegal to store nulls in Vectors.");
- } else {
- if (var1 != null && !this.contains(var1)) {
- this.addElement(var1);
- }
-
- }
- }
-
- public boolean insertElementBefore(Object var1, Object var2) {
- if (var1 == null) {
- throw new NullPointerException("It is illegal to store nulls in Vectors.");
- } else if (var2 == null) {
- return false;
- } else {
- int var3 = this.indexOf(var2);
- if (var3 == -1) {
- return false;
- } else {
- this.insertElementAt(var1, var3);
- return true;
- }
- }
- }
-
- public boolean insertElementAfter(Object var1, Object var2) {
- if (var1 == null) {
- throw new NullPointerException("It is illegal to store nulls in Vectors.");
- } else if (var2 == null) {
- return false;
- } else {
- int var3 = this.indexOf(var2);
- if (var3 == -1) {
- return false;
- } else {
- if (var3 >= this.count - 1) {
- this.addElement(var1);
- } else {
- this.insertElementAt(var1, var3 + 1);
- }
-
- return true;
- }
- }
- }
-
- public void addElementsIfAbsent(Vector var1) {
- if (var1 != null) {
- int var3 = var1.count();
-
- for(int var4 = 0; var4 < var3; ++var4) {
- Object var2 = var1.elementAt(var4);
- if (!this.contains(var2)) {
- this.addElement(var2);
- }
- }
-
- }
- }
-
- public void addElements(Vector var1) {
- if (var1 != null) {
- int var2 = var1.count();
- if (this.array == null || this.count + var2 >= this.array.length) {
- this.ensureCapacity(this.count + var2);
- }
-
- for(int var3 = 0; var3 < var2; ++var3) {
- this.addElement(var1.elementAt(var3));
- }
-
- }
- }
-
- public void removeAll(Object var1) {
- int var2 = this.count();
-
- while(var2-- > 0) {
- if (this.elementAt(var2).equals(var1)) {
- this.removeElementAt(var2);
- }
- }
-
- }
-
- public Object removeFirstElement() {
- return this.count == 0 ? null : this.removeElementAt(0);
- }
-
- public Object removeLastElement() {
- return this.count == 0 ? null : this.removeElementAt(this.count - 1);
- }
-
- public Object replaceElementAt(int var1, Object var2) {
- if (var2 == null) {
- throw new NullPointerException("It is illegal to store nulls in Vectors.");
- } else if (var1 >= this.count) {
- throw new ArrayIndexOutOfBoundsException(var1 + " >= " + this.count);
- } else if (var1 < 0) {
- throw new ArrayIndexOutOfBoundsException(var1 + " < 0");
- } else {
- Object var3 = this.elementAt(var1);
- this.array[var1] = var2;
- return var3;
- }
- }
-
- public Object[] elementArray() {
- Object[] var1 = new Object[this.count];
- if (this.count > 0) {
- System.arraycopy(this.array, 0, var1, 0, this.count);
- }
-
- return var1;
- }
-
- public void copyInto(Object[] var1) {
- if (this.count > 0) {
- System.arraycopy(this.array, 0, var1, 0, this.count);
- }
-
- }
-
- public void trimToSize() {
- if (this.count == 0) {
- this.array = null;
- } else {
- if (this.count != this.array.length) {
- this.array = this.elementArray();
- }
-
- }
- }
-
- public void ensureCapacity(int var1) {
- if (this.array == null) {
- this.array = new Object[8];
- }
-
- if (var1 >= this.array.length) {
- int var2;
- if (this.array.length < 8) {
- var2 = 8;
- } else {
- var2 = this.array.length;
- }
-
- while(var2 < var1) {
- var2 = 2 * var2;
- }
-
- Object[] var3 = new Object[var2];
- System.arraycopy(this.array, 0, var3, 0, this.count);
- this.array = var3;
- }
- }
-
- public int capacity() {
- return this.array == null ? 0 : this.array.length;
- }
-
- public Enumeration elements() {
- return new VectorEnumerator(this);
- }
-
- public Enumeration elements(int var1) {
- return new VectorEnumerator(this, var1);
- }
-
- public boolean contains(Object var1) {
- return this.indexOf(var1, 0) != -1;
- }
-
- public boolean containsIdentical(Object var1) {
- return this.indexOfIdentical(var1, 0) != -1;
- }
-
- public int indexOf(Object var1) {
- return this.indexOf(var1, 0);
- }
-
- public int indexOf(Object var1, int var2) {
- for(int var3 = var2; var3 < this.count; ++var3) {
- if (this.array[var3].equals(var1)) {
- return var3;
- }
- }
-
- return -1;
- }
-
- public int indexOfIdentical(Object var1, int var2) {
- for(int var3 = var2; var3 < this.count; ++var3) {
- if (this.array[var3] == var1) {
- return var3;
- }
- }
-
- return -1;
- }
-
- public int indexOfIdentical(Object var1) {
- return this.indexOfIdentical(var1, 0);
- }
-
- public int lastIndexOf(Object var1) {
- return this.lastIndexOf(var1, this.count);
- }
-
- public int lastIndexOf(Object var1, int var2) {
- if (var2 > this.count) {
- throw new ArrayIndexOutOfBoundsException(var2 + " > " + this.count);
- } else {
- for(int var3 = var2 - 1; var3 >= 0; --var3) {
- if (this.array[var3].equals(var1)) {
- return var3;
- }
- }
-
- return -1;
- }
- }
-
- public Object elementAt(int var1) {
- if (var1 >= this.count) {
- throw new ArrayIndexOutOfBoundsException(var1 + " >= " + this.count);
- } else {
- return this.array[var1];
- }
- }
-
- public Object firstElement() {
- return this.count == 0 ? null : this.array[0];
- }
-
- public Object lastElement() {
- return this.count == 0 ? null : this.array[this.count - 1];
- }
-
- public void setElementAt(Object var1, int var2) {
- if (var2 >= this.count) {
- throw new ArrayIndexOutOfBoundsException(var2 + " >= " + this.count);
- } else if (var1 == null) {
- throw new NullPointerException("It is illegal to store nulls in Vectors.");
- } else {
- this.array[var2] = var1;
- }
- }
-
- public Object removeElementAt(int var1) {
- if (var1 >= this.count) {
- throw new ArrayIndexOutOfBoundsException(var1 + " >= " + this.count);
- } else {
- Object var2 = this.array[var1];
- int var3 = this.count - var1 - 1;
- if (var3 > 0) {
- System.arraycopy(this.array, var1 + 1, this.array, var1, var3);
- }
-
- --this.count;
- this.array[this.count] = null;
- return var2;
- }
- }
-
- public void insertElementAt(Object var1, int var2) {
- if (var2 >= this.count + 1) {
- throw new ArrayIndexOutOfBoundsException(var2 + " >= " + this.count);
- } else if (var1 == null) {
- throw new NullPointerException("It is illegal to store nulls in Vectors.");
- } else {
- if (this.array == null || this.count >= this.array.length) {
- this.ensureCapacity(this.count + 1);
- }
-
- System.arraycopy(this.array, var2, this.array, var2 + 1, this.count - var2);
- this.array[var2] = var1;
- ++this.count;
- }
- }
-
- public void addElement(Object var1) {
- if (var1 == null) {
- throw new NullPointerException("It is illegal to store nulls in Vectors.");
- } else {
- if (this.array == null || this.count >= this.array.length) {
- this.ensureCapacity(this.count + 1);
- }
-
- this.array[this.count] = var1;
- ++this.count;
- }
- }
-
- public boolean removeElement(Object var1) {
- int var2 = this.indexOf(var1);
- if (var2 < 0) {
- return false;
- } else {
- this.removeElementAt(var2);
- return true;
- }
- }
-
- public boolean removeElementIdentical(Object var1) {
- int var2 = this.indexOfIdentical(var1, 0);
- if (var2 < 0) {
- return false;
- } else {
- this.removeElementAt(var2);
- return true;
- }
- }
-
- public void removeAllElements() {
- for(int var1 = 0; var1 < this.count; ++var1) {
- this.array[var1] = null;
- }
-
- this.count = 0;
- }
-
- public void sort(boolean var1) {
- Sort.sort(this.array, (Object[])null, 0, this.count, var1);
- }
-
- public void sortStrings(boolean var1, boolean var2) {
- Sort.sortStrings(this.array, 0, this.count, var1, var2);
- }
-
- public String toString() {
- return FormattingSerializer.serializeObject(this);
- }
-
- public void describeClassInfo(ClassInfo var1) {
- var1.addClass("netscape.util.Vector", 1);
- var1.addField("array", (byte)19);
- }
-
- public void encode(Encoder var1) throws CodingException {
- if (this.count != 0) {
- var1.encodeObjectArray("array", this.array, 0, this.count);
- }
- }
-
- public void decode(Decoder var1) throws CodingException {
- this.array = var1.decodeObjectArray("array");
- if (this.array == null) {
- this.count = 0;
- } else {
- this.count = this.array.length;
- }
- }
-
- public void finishDecoding() throws CodingException {
- }
- }
-