code: private List<Integer> getRowIds(final int startIndex, final int endIndex) {
  		// If the table is sorted, we may require a mapping for table row index <--> data model index.
  		int[] rowIndexMapping = getComponentModel().rowIndexMapping;
  
  		// Check if sort mapping needs updating
  		if (isSorted() && rowIndexMapping != null && rowIndexMapping.length != getDataModel().
  				getRowCount()) {
  			rowIndexMapping = getDataModel().sort(getSortColumnIndex(), isSortAscending());
  			getOrCreateComponentModel().rowIndexMapping = rowIndexMapping;
  		}
  
  		if (rowIndexMapping == null) {
  			// No mapping, return from startIndex to endIndex
  			return new RowIdList(startIndex, endIndex);
  		} else {
  			List<Integer> rowIds = new ArrayList<>(endIndex - startIndex + 1);
  
  			for (int i = startIndex; i <= endIndex; i++) {
  				rowIds.add(rowIndexMapping[i]);
  			}
  
  			return rowIds;
  		}
  
  	}
docs: Determine the row ids for the provided index range.
  
  @param startIndex the startIndex
  @param endIndex the endIndex
  @return the list of rowIds for the provided index range