01: /*
02: * Converts an enumeration to an iterator.
03: * Copyright (C) 2004-2006 Stephen Ostermiller
04: * http://ostermiller.org/contact.pl?regarding=Java+Utilities
05: *
06: * This program is free software; you can redistribute it and/or modify
07: * it under the terms of the GNU General Public License as published by
08: * the Free Software Foundation; either version 2 of the License, or
09: * (at your option) any later version.
10: *
11: * This program is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: * GNU General Public License for more details.
15: *
16: * See COPYING.TXT for details.
17: */
18:
19: package com.Ostermiller.util;
20:
21: import java.util.*;
22:
23: /**
24: * Converts an Enumeration to an iterator.
25: * <p>
26: * More information about this class is available from <a target="_top" href=
27: * "http://ostermiller.org/utils/Iterator_Enumeration.html">ostermiller.org</a>.
28: *
29: * @author Stephen Ostermiller http://ostermiller.org/contact.pl?regarding=Java+Utilities
30: * @param <ElementType> type of object over which to iterate
31: * @since ostermillerutils 1.03.00
32: */
33: public class EnumerationIterator<ElementType> implements
34: Iterator<ElementType> {
35:
36: /**
37: * Enumeration being converted to iterator.
38: */
39: private Enumeration<ElementType> enumeration;
40:
41: /**
42: * Create an Iterator from an Enumeration.
43: *
44: * @param enumeration Enumeration to convert to an Iterator.
45: *
46: * @since ostermillerutils 1.03.00
47: */
48: public EnumerationIterator(Enumeration<ElementType> enumeration) {
49: this .enumeration = enumeration;
50: }
51:
52: /**
53: * Tests if this Iterator contains more elements.
54: *
55: * @return true if and only if this Iterator object contains at least
56: * one more element to provide; false otherwise.
57: *
58: * @since ostermillerutils 1.03.00
59: */
60: public boolean hasNext() {
61: return enumeration.hasMoreElements();
62: }
63:
64: /**
65: * Returns the next element of this Iterator if this Iterator
66: * object has at least one more element to provide.
67: *
68: * @return the next element of this Iterator.
69: * @throws NoSuchElementException if no more elements exist.
70: *
71: * @since ostermillerutils 1.03.00
72: */
73: public ElementType next() throws NoSuchElementException {
74: return enumeration.nextElement();
75: }
76:
77: /**
78: * Operation not supported.
79: *
80: * @throws UnsupportedOperationException every time.
81: *
82: * @since ostermillerutils 1.03.00
83: */
84: public void remove() {
85: throw new UnsupportedOperationException(
86: "EnumerationIterator does not support remove()");
87: }
88: }
|