org.glowroot.shaded.h2.index.RangeCursor Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2004-2013 H2 Group. Multiple-Licensed under the H2 License,
* Version 1.0, and under the Eclipse Public License, Version 1.0
* (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.glowroot.shaded.h2.index;
import org.glowroot.shaded.h2.message.DbException;
import org.glowroot.shaded.h2.result.Row;
import org.glowroot.shaded.h2.result.SearchRow;
import org.glowroot.shaded.h2.value.Value;
import org.glowroot.shaded.h2.value.ValueLong;
/**
* The cursor implementation for the range index.
*/
class RangeCursor implements Cursor {
private boolean beforeFirst;
private long current;
private Row currentRow;
private final long min, max;
RangeCursor(long min, long max) {
this.min = min;
this.max = max;
beforeFirst = true;
}
@Override
public Row get() {
return currentRow;
}
@Override
public SearchRow getSearchRow() {
return currentRow;
}
@Override
public boolean next() {
if (beforeFirst) {
beforeFirst = false;
current = min;
} else {
current++;
}
currentRow = new Row(new Value[]{ValueLong.get(current)}, 1);
return current <= max;
}
@Override
public boolean previous() {
throw DbException.throwInternalError();
}
}