1package org.hamcrest.internal;
2
3import java.lang.reflect.Array;
4import java.util.Iterator;
5
6public class ArrayIterator implements Iterator<Object> {
7    private final Object array;
8    private int currentIndex = 0;
9
10    public ArrayIterator(Object array) {
11        if (!array.getClass().isArray()) {
12            throw new IllegalArgumentException("not an array");
13        }
14        this.array = array;
15    }
16
17    @Override
18    public boolean hasNext() {
19        return currentIndex < Array.getLength(array);
20    }
21
22    @Override
23    public Object next() {
24        return Array.get(array, currentIndex++);
25    }
26
27    @Override
28    public void remove() {
29        throw new UnsupportedOperationException("cannot remove items from an array");
30    }
31}
32