class RangeCursor implements Cursor {

        private final long start, end, step;
        private boolean beforeFirst;
        private long current;
        private Row currentRow;

        RangeCursor(long start, long end, long step) {
            this.start = start;
            this.end = end;
            this.step = step;
            beforeFirst = true;
        }

        @Override
        public Row get() {
            return currentRow;
        }

        @Override
        public boolean next() {<FILL_FUNCTION_BODY>}
    }

            if (beforeFirst) {
                beforeFirst = false;
                current = start;
            } else {
                current += step;
            }
            currentRow = new Row(new Value[] { ValueLong.get(current) }, 1);
            return step > 0 ? current <= end : current >= end;
        
<methods>public boolean canGetFirstOrLast() ,public boolean canScan() ,public void checkRename() ,public void close(com.lealone.db.session.ServerSession) ,public int compareRows(com.lealone.db.result.SearchRow, com.lealone.db.result.SearchRow) ,public com.lealone.db.index.Cursor find(com.lealone.db.session.ServerSession, CursorParameters<com.lealone.db.result.SearchRow>) ,public com.lealone.db.index.Cursor findDistinct(com.lealone.db.session.ServerSession) ,public com.lealone.db.result.SearchRow findFirstOrLast(com.lealone.db.session.ServerSession, boolean) ,public int[] getColumnIds() ,public int getColumnIndex(com.lealone.db.table.Column) ,public com.lealone.db.table.Column[] getColumns() ,public java.lang.String getCreateSQL() ,public long getDiskSpaceUsed() ,public com.lealone.db.index.IndexColumn[] getIndexColumns() ,public com.lealone.db.index.IndexType getIndexType() ,public long getMemorySpaceUsed() ,public java.lang.String getPlanSQL() ,public com.lealone.db.result.Row getRow(com.lealone.db.session.ServerSession, long) ,public com.lealone.db.table.Table getTable() ,public com.lealone.db.DbObjectType getType() ,public boolean isHidden() ,public boolean isInMemory() ,public boolean isRowIdIndex() ,public boolean needRebuild() ,public void remove(com.lealone.db.session.ServerSession) ,public void removeChildrenAndResources(com.lealone.db.session.ServerSession, com.lealone.db.lock.DbObjectLock) ,public boolean supportsDistinctQuery() ,public void truncate(com.lealone.db.session.ServerSession) <variables>protected int[] columnIds,protected com.lealone.db.table.Column[] columns,protected com.lealone.db.index.IndexColumn[] indexColumns,protected final non-sealed com.lealone.db.index.IndexType indexType,protected final non-sealed com.lealone.db.table.Table table