summaryrefslogtreecommitdiffstats
path: root/hamcrest-core/src/org/hamcrest/internal/ArrayIterator.java
blob: 093cdba8a9d1d8e57b851aa0eb1a2d0c2d48d4a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package org.hamcrest.internal;

import java.lang.reflect.Array;
import java.util.Iterator;

public class ArrayIterator implements Iterator<Object> {
	private final Object array;
	private int currentIndex = 0;
	
	public ArrayIterator(Object array) {
		if (!array.getClass().isArray()) {
			throw new IllegalArgumentException("not an array");
		}
		this.array = array;
	}
	
	public boolean hasNext() {
		return currentIndex < Array.getLength(array);
	}

	public Object next() {
		return Array.get(array, currentIndex++);
	}
	
	public void remove() {
		throw new UnsupportedOperationException("cannot remove items from an array");
	}
}