/**
* This class will instill 'normal' iterator behavior to a ColumnFamilyResult.
* Simply instantiate this class while passing your ColumnFamilyResult as a
* constructor argument.
*
* Ex.
*
* ColumnFamilyResultIterator myResultsInterator =
* new ColumnFamilyResultIterator(someColumnFamilyResult);
*
* You can then use myResultsInterator with for loops or iterate with a while loop
* just as with any standard java iterator.
*
*/
package me.prettyprint.cassandra.service.template;
import java.util.Iterator;
import me.prettyprint.cassandra.service.template.ColumnFamilyResult;
public class ColumnFamilyResultIterator implements Iterator<ColumnFamilyResult<?,?>> {
private ColumnFamilyResult<?, ?> res;
private boolean isStart = true;
public ColumnFamilyResultIterator(ColumnFamilyResult<?, ?> res) {
this.res = res;
}
public boolean hasNext() {
boolean retval = false;
if (isStart) {
if(res.hasResults() || res.hasNext()) {
retval = true;
}
}
else {
retval = res.hasNext();
}
return retval;
}
public ColumnFamilyResult<?, ?> getRes() {
return res;
}
public void setRes(ColumnFamilyResult<?, ?> res) {
this.res = res;
}
public ColumnFamilyResult<?, ?> next()
{
if (isStart) {
isStart = false;
return res;
}
else {
return (ColumnFamilyResult<?, ?>) res.next();
}
}
public void remove() {
res.remove();
}
}