001package org.hamcrest.internal;
002
003import java.lang.reflect.Array;
004import java.util.Iterator;
005
006public class ArrayIterator implements Iterator<Object> {
007    private final Object array;
008    private int currentIndex = 0;
009    
010    public ArrayIterator(Object array) {
011        if (!array.getClass().isArray()) {
012            throw new IllegalArgumentException("not an array");
013        }
014        this.array = array;
015    }
016    
017    @Override
018    public boolean hasNext() {
019        return currentIndex < Array.getLength(array);
020    }
021
022    @Override
023    public Object next() {
024        return Array.get(array, currentIndex++);
025    }
026    
027    @Override
028    public void remove() {
029        throw new UnsupportedOperationException("cannot remove items from an array");
030    }
031}