KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > util > collection > ArrayIterator


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.util.collection;
23
24 import java.util.Iterator JavaDoc;
25 import java.util.NoSuchElementException JavaDoc;
26
27 import java.io.Serializable JavaDoc;
28
29 import org.jboss.util.NullArgumentException;
30
31 /**
32  * An array iterator.
33  *
34  * @version <tt>$Revision: 1958 $</tt>
35  * @author <a HREF="mailto:jason@planet57.com">Jason Dillon</a>
36  */

37 public class ArrayIterator
38    implements Iterator JavaDoc, Serializable JavaDoc, Cloneable JavaDoc
39 {
40    /** Array to iterate over. */
41    protected final Object JavaDoc[] array;
42
43    /** The current position in the array. */
44    protected int index;
45
46    /**
47     * Construct an ArrayIterator.
48     *
49     * @param array The array to iterate over.
50     */

51    public ArrayIterator(final Object JavaDoc[] array) {
52       if (array == null)
53          throw new NullArgumentException("array");
54
55       this.array = array;
56    }
57
58    /**
59     * Returns true if there are more elements in the iteration.
60     *
61     * @return True if there are more elements in the iteration.
62     */

63    public boolean hasNext() {
64       return index < array.length;
65    }
66
67    /**
68     * Returns the next element in the iteration.
69     *
70     * @return The next element in the iteration.
71     *
72     * @throws NoSuchElementException The are no more elements available.
73     */

74    public Object JavaDoc next() {
75       if (! hasNext())
76          throw new NoSuchElementException JavaDoc();
77
78       return array[index++];
79    }
80
81    /**
82     * Unsupported.
83     *
84     * @throws UnsupportedOperationException
85     */

86    public void remove() {
87       throw new UnsupportedOperationException JavaDoc();
88    }
89
90    /**
91     * Returns a shallow cloned copy of this object.
92     *
93     * @return A shallow cloned copy of this object.
94     */

95    public Object JavaDoc clone() {
96       try {
97          return super.clone();
98       }
99       catch (CloneNotSupportedException JavaDoc e) {
100          throw new InternalError JavaDoc();
101       }
102    }
103 }
104
Popular Tags