- /*
- * @(#)ResourceBundleEnumeration.java 1.5 04/05/05
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package java.util;
-
- /**
- * Implements an Enumeration that combines elements from a Set and
- * an Enumeration. Used by ListResourceBundle and PropertyResourceBundle.
- */
- class ResourceBundleEnumeration implements Enumeration<String> {
-
- Set<String> set;
- Iterator<String> iterator;
- Enumeration<String> enumeration; // may remain null
-
- /**
- * Constructs a resource bundle enumeration.
- * @param set an set providing some elements of the enumeration
- * @param enumeration an enumeration providing more elements of the enumeration.
- * enumeration may be null.
- */
- ResourceBundleEnumeration(Set<String> set, Enumeration<String> enumeration) {
- this.set = set;
- this.iterator = set.iterator();
- this.enumeration = enumeration;
- }
-
- String next = null;
-
- public boolean hasMoreElements() {
- if (next == null) {
- if (iterator.hasNext()) {
- next = iterator.next();
- } else if (enumeration != null) {
- while (next == null && enumeration.hasMoreElements()) {
- next = enumeration.nextElement();
- if (set.contains(next)) {
- next = null;
- }
- }
- }
- }
- return next != null;
- }
-
- public String nextElement() {
- if (hasMoreElements()) {
- String result = next;
- next = null;
- return result;
- } else {
- throw new NoSuchElementException();
- }
- }
- }