You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by rw...@apache.org on 2002/07/10 16:06:39 UTC
cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections TestCollatingIterator.java
rwaldhoff 2002/07/10 07:06:39
Modified: collections/src/java/org/apache/commons/collections
CollatingIterator.java
collections/src/test/org/apache/commons/collections
TestCollatingIterator.java
Log:
add no-arg constructor
fix method name
add some javadoc comments
Revision Changes Path
1.2 +51 -6 jakarta-commons/collections/src/java/org/apache/commons/collections/CollatingIterator.java
Index: CollatingIterator.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/CollatingIterator.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CollatingIterator.java 9 Jul 2002 16:48:56 -0000 1.1
+++ CollatingIterator.java 10 Jul 2002 14:06:39 -0000 1.2
@@ -80,13 +80,17 @@
//------------------------------------------------------------ Constructors
+ public CollatingIterator() {
+ this(null,2);
+ }
+
public CollatingIterator(Comparator comp) {
this(comp,2);
}
public CollatingIterator(Comparator comp, int initIterCapacity) {
iterators = new ArrayList(initIterCapacity);
- comparator = comp;
+ setComparator(comp);
}
public CollatingIterator(Comparator comp, Iterator a, Iterator b) {
@@ -97,17 +101,28 @@
//--------------------------------------------------------- Public Methods
+ /**
+ * Add the given {@link Iterator} to my collection to collate.
+ * @throws IllegalStateException if I've already started iterating
+ */
public void addIterator(Iterator iter) throws IllegalStateException {
checkNotStarted();
iterators.add(iter);
}
+ /**
+ * Set the {@link Comparator} by which I collate.
+ * @throws IllegalStateException if I've already started iterating
+ */
public void setComparator(Comparator comp) throws IllegalStateException {
checkNotStarted();
comparator = comp;
}
- public Comparator getIterator() {
+ /**
+ * Get the {@link Comparator} by which I collate.
+ */
+ public Comparator getComparator() {
return comparator;
}
@@ -145,6 +160,7 @@
//--------------------------------------------------------- Private Methods
+ /** Initialize my collating state if it hasn't been already. */
private void start() {
if(null == values) {
values = new ArrayList(iterators.size());
@@ -156,6 +172,15 @@
}
}
+ /**
+ * Set the {@link #values} and {@link #valueSet} attributes
+ * at position <i>i</i> to the next value of the
+ * {@link #iterators iterator} at position <i>i</i>, or
+ * clear them if the <i>i</i><sup>th</sup> iterator
+ * has no next value.
+ *
+ * @return <tt>false</tt> iff there was no value to set
+ */
private boolean set(int i) {
Iterator iter = (Iterator)(iterators.get(i));
if(iter.hasNext()) {
@@ -169,17 +194,29 @@
}
}
+ /**
+ * Clear the {@link #values} and {@link #valueSet} attributes
+ * at position <i>i</i>.
+ */
private void clear(int i) {
values.set(i,null);
valueSet.clear(i);
}
+ /**
+ * Throw {@link IllegalStateException} iff I've been {@link #start started}.
+ * @throws IllegalStateException iff I've been {@link #start started}
+ */
private void checkNotStarted() throws IllegalStateException {
if(null != values) {
throw new IllegalStateException("Can't do that after next or hasNext has been called.");
}
}
+ /**
+ * Returns the index of the least element in {@link #values},
+ * {@link #set(int) setting} any uninitialized values.
+ */
private int least() throws IllegalStateException {
int leastIndex = -1;
Object leastObject = null;
@@ -203,6 +240,10 @@
return leastIndex;
}
+ /**
+ * Returns <code>true</code> iff any bit in the given set is
+ * <code>true</code>.
+ */
private boolean anyValueSet(BitSet set) {
for(int i=0;i<set.size();i++) {
if(set.get(i)) {
@@ -212,6 +253,10 @@
return false;
}
+ /**
+ * Returns <code>true</code> iff any {@link Iterator}
+ * in the given list has a next value.
+ */
private boolean anyHasNext(ArrayList iters) {
for(int i=0;i<iters.size();i++) {
Iterator iter = (Iterator)iters.get(i);
1.2 +15 -10 jakarta-commons/collections/src/test/org/apache/commons/collections/TestCollatingIterator.java
Index: TestCollatingIterator.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestCollatingIterator.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestCollatingIterator.java 9 Jul 2002 16:48:56 -0000 1.1
+++ TestCollatingIterator.java 10 Jul 2002 14:06:39 -0000 1.2
@@ -138,6 +138,15 @@
//------------------------------------------------------------------- Tests
+ public void testGetSetComparator() {
+ CollatingIterator iter = new CollatingIterator();
+ assertNull(iter.getComparator());
+ iter.setComparator(comparator);
+ assertSame(comparator,iter.getComparator());
+ iter.setComparator(null);
+ assertNull(iter.getComparator());
+ }
+
public void testIterateEven() {
CollatingIterator iter = new CollatingIterator(comparator);
iter.addIterator(evens.iterator());
@@ -149,9 +158,7 @@
}
public void testIterateEvenOdd() {
- CollatingIterator iter = new CollatingIterator(comparator);
- iter.addIterator(evens.iterator());
- iter.addIterator(odds.iterator());
+ CollatingIterator iter = new CollatingIterator(comparator,evens.iterator(),odds.iterator());
for(int i=0;i<20;i++) {
assertTrue(iter.hasNext());
assertEquals(new Integer(i),iter.next());
@@ -160,9 +167,7 @@
}
public void testIterateOddEven() {
- CollatingIterator iter = new CollatingIterator(comparator);
- iter.addIterator(odds.iterator());
- iter.addIterator(evens.iterator());
+ CollatingIterator iter = new CollatingIterator(comparator,odds.iterator(),evens.iterator());
for(int i=0;i<20;i++) {
assertTrue(iter.hasNext());
assertEquals(new Integer(i),iter.next());
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>