package net.ion.craken.node.crud;
import java.util.Iterator;
import java.util.List;
import net.ion.craken.node.ReadNode;
import net.ion.craken.node.ReadSession;
public class ReadChildrenIterator implements Iterable<ReadNode>, Iterator<ReadNode> {
private ReadSession session;
private List<ReadNode> list;
private int index = 0 ;
ReadChildrenIterator(ReadSession session, List<ReadNode> list) {
this.session = session ;
this.list = list ;
}
final static ReadChildrenIterator create(ReadSession session, List<ReadNode> list){
return new ReadChildrenIterator(session, list) ;
}
public List<ReadNode> list(){
return list ;
}
@Override
public Iterator<ReadNode> iterator() {
return this;
}
@Override
public boolean hasNext() {
return list.size() > index;
}
public int count() {
return list.size() ;
}
@Override
public ReadNode next() {
return list.get(index++);
}
@Override
public void remove() {
throw new UnsupportedOperationException("readonly");
}
public ReadSession session() {
return session;
}
}