{
return currRow + (end ? 1 : 0);
}
else if ( bDef instanceof RangeBoundaryDef)
{
RangeBoundaryDef rbDef = (RangeBoundaryDef) bDef;
int amt = rbDef.getAmt();
if ( amt == BoundarySpec.UNBOUNDED_AMOUNT )
{
return rbDef.getDirection() == Direction.PRECEDING ? 0 : p.size();
}
amt = rbDef.getDirection() == Direction.PRECEDING ? -amt : amt;
int idx = currRow + amt;
idx = idx < 0 ? 0 : (idx > p.size() ? p.size() : idx);
return idx + (end && idx < p.size() ? 1 : 0);
}
else