1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.millscript.millscript.tools;
22
23 import java.util.Iterator;
24 import java.util.NoSuchElementException;
25
26 /**
27 * This class implements an iterator which iterates over all the values in an
28 * array.
29 *
30 * @deprecated As of MillScript 10.2.0, this functionallity has been subsumed
31 * by the MillScript-Util project and it's Map API, see
32 * {@link org.millscript.commons.util.iterator.ArrayListIterator}.
33 */
34 @Deprecated
35 public class ArrayIterator implements Iterator {
36
37 /**
38 * The array this iterator is iterating over.
39 */
40 private final Object[] backingArray;
41
42 /**
43 * The current position in the array we're iterating over. Note this holds
44 * the index of the value to be returned by a subsequent call to the next
45 * method.
46 */
47 private int pos = 0;
48
49 /**
50 * Constructs a new array iterator to iterate over all the values in the
51 * specified array.
52 *
53 * @param array the array to iterate over
54 */
55 public ArrayIterator( final Object[] array ) {
56 this.backingArray = array;
57 }
58
59 /**
60 * @see java.util.Iterator#remove()
61 */
62 public void remove() {
63 throw new UnsupportedOperationException( "ArrayIterator is immutable" );
64 }
65
66 /**
67 * @see java.util.Iterator#hasNext()
68 */
69 public boolean hasNext() {
70 return pos < backingArray.length;
71 }
72
73 /**
74 * @see java.util.Iterator#next()
75 */
76 public Object next() {
77 if ( pos < backingArray.length ) {
78 return this.backingArray[ pos++ ];
79 } else {
80 throw new NoSuchElementException( "ArrayIterator has no more elements" );
81 }
82 }
83
84 }