int currentPosition = firstItem.getNumber().intValue();
int currentPage = currentPosition / itemsPerPage;
int length = ((NumberValue)state.get(TableMapRenderer.LENGTH)).getNumber().intValue();
int totalPages = (int)Math.floor((double)length / ((double)itemsPerPage) + 1);
int lastItem = Math.min(currentPosition + itemsPerPage, length);
result.addResultEntry(FIRST_ITEM, firstItem);
result.addResultEntry(LAST_ITEM, new NumberValue(new Integer(lastItem)));
result.addResultEntry(CURRENT_PAGE, new NumberValue(new Integer(currentPage)));
result.addResultEntry(TOTAL_PAGES, new NumberValue(new Integer(totalPages)));
boolean hasNext = false, hasPrevious = false;
if (itemsPerPage > 0) {