1 /*
2 * Copyright (c) 2003-2008 by Cosylab d. d.
3 *
4 * This file is part of Java-Common.
5 *
6 * Java-Common is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * Java-Common 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 * You should have received a copy of the GNU General Public License
17 * along with Java-Common. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 package com.cosylab.util;
21
22 import java.util.Iterator;
23
24 /**
25 * An iterator for iterating arrays.
26 *
27 * @author Klemen Zagar, Cosylab
28 *
29 * @param <T>
30 * Type of the array.
31 */
32 public class ArrayIterator<T> implements Iterator<T> {
33 private int index = 0;
34 private T[] array;
35 private int length;
36
37 public ArrayIterator(T[] array, int length) {
38 if(array == null && length > 0) {
39 throw new IllegalArgumentException("Array iterator's length is non-zero, but no array is given.");
40 }
41 if(length < 0) {
42 throw new IllegalArgumentException("Array iterator's length can not be negative.");
43 }
44 this.array = array;
45 this.length = length;
46 }
47
48 public boolean hasNext() {
49 return this.index < this.length;
50 }
51
52 public T next() {
53 return this.array[this.index++];
54 }
55
56 public void remove() {
57 throw new UnsupportedOperationException(
58 "Removing of elements with array iterator is not possible.");
59 }
60 }