| 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; |
| } |
| |
| @Override |
| public boolean hasNext() { |
| return currentIndex < Array.getLength(array); |
| } |
| |
| @Override |
| public Object next() { |
| return Array.get(array, currentIndex++); |
| } |
| |
| @Override |
| public void remove() { |
| throw new UnsupportedOperationException("cannot remove items from an array"); |
| } |
| } |