package itn.com.utl.page;

import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;


public class PaginationUtil {
    public static <T extends PageableVO> PaginationInfo init(T vo) {
        PaginationInfo paginationInfo = new PaginationInfo();
        paginationInfo.setCurrentPageNo(vo.getPageIndex());
        paginationInfo.setRecordCountPerPage(vo.getPageUnit());
        paginationInfo.setPageSize(vo.getPageSize());

        vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
        vo.setLastIndex(paginationInfo.getLastRecordIndex());
        vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
        return paginationInfo;
    }

    public static <T extends PageableVO> PaginationInfo initWithSort(T vo, String defaultCnd, String defaultOrd) {
        if(vo.getSearchSortCnd() == null || vo.getSearchSortCnd().isEmpty()) {
            vo.setSearchSortCnd(defaultCnd);
        }
        if (vo.getSearchSortOrd() == null || vo.getSearchSortOrd().isEmpty()) {
            vo.setSearchSortOrd(defaultOrd);  // asc / desc
        }
        return init(vo);
    }
}

