1 package pt.digitalis.dif.utils; 2 3 /** 4 * Abstracts the various implementations of pagination 5 * 6 * @author Fábio Souto <a href="mailto:fsouto@digitalis.pt">fsouto@digitalis.pt</a><br/> 7 * @created 9 de Nov de 2011 8 */ 9 public class Pagination { 10 11 /** The page to be presented */ 12 private int page = 0; 13 /** The limit of results per page */ 14 private int rowsPerPage = 0; 15 16 /** 17 * Instantiates a new pagination object. The limit is always required, and at least one of the two parameters (page 18 * or start) 19 * 20 * @param page 21 * The page to be presented or null (start required) 22 * @param rowsPerPage 23 * The limit of results per page 24 */ 25 public Pagination(Integer page, Integer rowsPerPage) 26 { 27 this.page = page; 28 this.rowsPerPage = rowsPerPage; 29 } 30 31 /** 32 * Get the end row 33 * 34 * @return the end row 35 */ 36 public int getEndRow() 37 { 38 return this.page * this.rowsPerPage; 39 } 40 41 /** 42 * Get the page to be fetched 43 * 44 * @return The page to be fetched 45 */ 46 public int getPage() 47 { 48 return this.page; 49 } 50 51 /** 52 * Get the limit of results per page 53 * 54 * @return The limit of results per page 55 */ 56 public int getRowsPerPage() 57 { 58 return this.rowsPerPage; 59 } 60 61 /** 62 * Get the start row 63 * 64 * @return the start row 65 */ 66 public int getStartRow() 67 { 68 return (this.page - 1) * this.rowsPerPage; 69 } 70 71 }