PagingStatus.java 1.32 KB
package fi.insomnia.intra.web;

import java.math.BigDecimal;

import org.apache.catalina.Logger;
import org.slf4j.LoggerFactory;

import fi.insomnia.intra.dao.IPagingStatus;

public class PagingStatus implements IPagingStatus {

    private static final org.slf4j.Logger logger = LoggerFactory.getLogger(PagingStatus.class);
    private int pagesize;
    private int page;
    private long totalHits;

    public PagingStatus(int defaultSize) {
	pagesize = defaultSize;
	page = 0;
	totalHits = 0;
    }

    public void setPagesize(int pagesize) {
	this.pagesize = pagesize;
    }

    public int getPagesize() {
	return pagesize;
    }

    public void setPage(int page) {
	this.page = page;
    }

    public int getPage() {
	return page;
    }

    public void setTotalHits(long l) {
	this.totalHits = l;
    }

    public long getTotalHits() {
	return totalHits;
    }

    public long getTotalPages() {
	BigDecimal pages = new BigDecimal(totalHits).divide(new BigDecimal(pagesize), BigDecimal.ROUND_CEILING);

	return pages.setScale(0, BigDecimal.ROUND_CEILING).longValue();
    }

    public void next() {

	if (page < getTotalPages()) {
	    ++page;
	} else {
	    page = (int) (getTotalPages() - 1);

	}
	logger.info("page is now {}", page);
    }

    public void prev() {

	if (page > 0) {
	    --page;
	} else {
	    page = 0;
	}
    }

}