package pt.ist.fenixframework.core.adt.skiplist; import pt.ist.fenixframework.core.AbstractDomainObject; public class SkipListNode extends SkipListNode_Base { public SkipListNode() { super(); } public SkipListNode(int maxLevel, AbstractDomainObject value) { this(); setForward(new ForwardArray(maxLevel)); setValue(value); } public void setForward(int level, SkipListNode next) { SkipListNode[] arr = copyForward(); arr[level] = next; setForward(new ForwardArray(arr)); } public SkipListNode getForward(int level) { return getForward().forward[level]; } private SkipListNode[] copyForward() { SkipListNode[] arr = getForward().forward; int size = arr.length; SkipListNode[] newArr = new SkipListNode[arr.length]; System.arraycopy(arr, 0, newArr, 0, size); return newArr; } }