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