summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java
diff options
context:
space:
mode:
authorbjculkin <bjculkin@mix.wvu.edu>2017-03-17 09:57:54 -0400
committerbjculkin <bjculkin@mix.wvu.edu>2017-03-17 09:57:54 -0400
commit6ea2b6868eb496f39bbbfb2d13662cb397d4d799 (patch)
tree343c6e0012e4c89bea75110171dafd08ad11d782 /BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java
parent7f59d0b9de4536705b3122cb5a85d9c9f85846a3 (diff)
More toString/hashCode/equals
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java b/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java
index 7131114..1dffbc1 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/CircularIterator.java
@@ -2,14 +2,42 @@ package bjc.utils.data;
import java.util.Iterator;
+/**
+ * An iterator that repeats elements from a provided iterable.
+ *
+ * @author EVE
+ *
+ * @param <E>
+ * The type of the iterable.
+ */
public class CircularIterator<E> implements Iterator<E> {
+ /*
+ * The iterable, and our current iterator into it.
+ */
private Iterable<E> source;
private Iterator<E> curr;
+ /*
+ * Our current element.
+ */
private E curElm;
+ /*
+ * Should we actually get new iterators, or just repeat the last
+ * element?
+ */
private boolean doCircle;
+ /**
+ * Create a new circular iterator.
+ *
+ * @param src
+ * The iterable to iterate from.
+ *
+ * @param circ
+ * Should we actually do circular iteration, or just
+ * repeat the terminal element?
+ */
public CircularIterator(Iterable<E> src, boolean circ) {
source = src;
curr = source.iterator();
@@ -17,6 +45,12 @@ public class CircularIterator<E> implements Iterator<E> {
doCircle = circ;
}
+ /**
+ * Create a new circular iterator that does actual circular iteration.
+ *
+ * @param src
+ * The iterable to iterate from.
+ */
public CircularIterator(Iterable<E> src) {
this(src, true);
}