aboutsummaryrefslogtreecommitdiff
path: root/hamcrest-core/src/main/java/org/hamcrest/internal/ArrayIterator.java
blob: 03e4c43e348461f5d16ad94f593b341e85278144 (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
29
30
31
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");
    }
}