/**
*
*/
package com.salesmanager.web.shop.model.paging;
import java.io.Serializable;
/**
* POJO representation of pagination
* @author Umesh Awasthi
*
*/
public class PaginationData implements Serializable
{
private static final long serialVersionUID = 1L;
/** The number of results per page.*/
private int pageSize;
private int currentPage;
private int offset ;
private int totalCount;
private int totalPages;
private int countByPage;
public PaginationData(int pageSize,int currentPage) {
if (pageSize == 0)
throw new IllegalArgumentException("limit cannot be 0 for pagination.");
this.pageSize = pageSize;
this.currentPage=currentPage;
}
public int getPageSize()
{
return pageSize;
}
/**
* The current page number this pagination object represents
*
* @return the page number
*/
public int getPageNumber() {
if (offset < pageSize || pageSize == 0)
return 1;
return (offset / pageSize) + 1;
}
/**
* The offset for this pagination object. The offset determines what index (0 index) to start retrieving results from.
*
* @return the offset
*/
public int getOffset() {
return (currentPage - 1) * pageSize + 1;
}
/**
* Creates a new pagination object representing the next page
*
* @return new pagination object with offset shifted by offset+limit
*/
public PaginationData getNext()
{
return new PaginationData( offset + pageSize, pageSize );
}
/**
* Creates a new pagination object representing the previous page
*
* @return new pagination object with offset shifted by offset-limit
*/
public PaginationData getPrevious() {
if (pageSize >= offset) {
return new PaginationData(0, pageSize);
} else {
return new PaginationData(offset - pageSize, pageSize);
}
}
public int getCurrentPage()
{
return currentPage;
}
public void setCurrentPage( int currentPage )
{
this.currentPage = currentPage;
}
public int getTotalCount()
{
return totalCount;
}
public void setTotalCount( int totalCount )
{
this.totalCount = totalCount;
}
public int getTotalPages()
{
Integer totalPages= Integer.valueOf((int) (Math.ceil(Integer.valueOf(totalCount).doubleValue() / pageSize)));
return totalPages;
}
public int getCountByPage() {
return countByPage;
}
public void setCountByPage(int countByPage) {
this.countByPage = countByPage;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
}