summaryrefslogtreecommitdiffstats
path: root/hamcrest-core/src/org/hamcrest/internal/ArrayIterator.java
diff options
context:
space:
mode:
Diffstat (limited to 'hamcrest-core/src/org/hamcrest/internal/ArrayIterator.java')
-rw-r--r--hamcrest-core/src/org/hamcrest/internal/ArrayIterator.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/hamcrest-core/src/org/hamcrest/internal/ArrayIterator.java b/hamcrest-core/src/org/hamcrest/internal/ArrayIterator.java
new file mode 100644
index 0000000..093cdba
--- /dev/null
+++ b/hamcrest-core/src/org/hamcrest/internal/ArrayIterator.java
@@ -0,0 +1,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");
+ }
+}