- /*
- * @(#)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");
- }
- }