package com.alvazan.orm.layer0.base; import com.alvazan.orm.api.z5api.IndexColumnInfo; import com.alvazan.orm.api.z8spi.iter.AbstractCursor.Holder; import com.alvazan.orm.api.z8spi.iter.DirectCursor; public class DebugCursor implements DirectCursor<IndexColumnInfo> { private DirectCursor<IndexColumnInfo> cursor; private boolean alreadyRan; public DebugCursor(DirectCursor<IndexColumnInfo> cursor) { this.cursor = cursor; } @Override public Holder<IndexColumnInfo> nextImpl() { return cursor.nextImpl(); } @Override public Holder<IndexColumnInfo> previousImpl() { return cursor.previousImpl(); } @Override public void beforeFirst() { if(alreadyRan) throw new IllegalArgumentException("This cursor cannot be reset"); alreadyRan = true; } @Override public void afterLast() { if(alreadyRan) throw new IllegalArgumentException("This cursor cannot be reset"); alreadyRan = true; } }