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