package com.sleepycat.je.dbi;
public class CursorImpl {
private boolean allowEviction=true;
/**
* Disables or enables eviction during cursor operations for an internal
* cursor. For example, a cursor used to implement eviction should not
* itself perform eviction. Eviction is enabled by default.
*/
public void setAllowEviction( boolean allowed){
allowEviction=allowed;
}
/**
* Evict the LN node at the cursor position. This is used for internal
* databases only.
*/
public void evict() throws DatabaseException {
this.hook202();
setTargetBin();
targetBin.evictLN(targetIndex);
}
protected void hook202() throws DatabaseException {
}
protected void hook203() throws DatabaseException {
}
/**
* Shallow copy. addCursor() is optionally called. Allows inheriting the BIN
* position from some other cursor.
*/
public CursorImpl cloneCursor( boolean addCursor, CursorImpl usePosition) throws DatabaseException {
CursorImpl result=original(addCursor,usePosition);
if (allowEviction) {
this.hook203();
}
return result;
}
}