/*
* @(#)IdentityHashtableEnumerator.java 1.2 03/12/19
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
/*
* Licensed Materials - Property of IBM
* RMI-IIOP v1.0
* Copyright IBM Corp. 1998 1999 All Rights Reserved
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*/
package com.sun.corba.se.impl.util;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.NoSuchElementException;
/**
* A hashtable enumerator class. This class should remain opaque
* to the client. It will use the Enumeration interface.
*/
class IdentityHashtableEnumerator implements Enumeration {
boolean keys;
int index;
IdentityHashtableEntry table[];
IdentityHashtableEntry entry;
IdentityHashtableEnumerator(IdentityHashtableEntry table[], boolean keys) {
this.table = table;
this.keys = keys;
this.index = table.length;
}
public boolean hasMoreElements() {
if (entry != null) {
return true;
}
while (index-- > 0) {
if ((entry = table[index]) != null) {
return true;
}
}
return false;
}
public Object nextElement() {
if (entry == null) {
while ((index-- > 0) && ((entry = table[index]) == null));
}
if (entry != null) {
IdentityHashtableEntry e = entry;
entry = e.next;
return keys ? e.key : e.value;
}
throw new NoSuchElementException("IdentityHashtableEnumerator");
}
}
|