r3554 - trunk/pollen-persistence/src/main/java/org/chorem/pollen
Author: tchemit Date: 2012-06-25 19:49:06 +0200 (Mon, 25 Jun 2012) New Revision: 3554 Url: http://chorem.org/repositories/revision/pollen/3554 Log: refs #642 : add helper code Modified: trunk/pollen-persistence/src/main/java/org/chorem/pollen/PollenIOUtil.java Modified: trunk/pollen-persistence/src/main/java/org/chorem/pollen/PollenIOUtil.java =================================================================== --- trunk/pollen-persistence/src/main/java/org/chorem/pollen/PollenIOUtil.java 2012-06-25 17:43:36 UTC (rev 3553) +++ trunk/pollen-persistence/src/main/java/org/chorem/pollen/PollenIOUtil.java 2012-06-25 17:49:06 UTC (rev 3554) @@ -22,10 +22,17 @@ */ package org.chorem.pollen; +import com.google.common.base.Preconditions; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaFilterPagerUtil; +import org.nuiton.util.PagerUtil; import java.io.File; +import java.util.List; /** * Some utils IO methods. @@ -62,4 +69,32 @@ File databaseFile = new File(tempDirFile, dataBasePath); return databaseFile; } + + public static <E> List<E> findByPager(TopiaContext tx, + String hql, + TopiaFilterPagerUtil.FilterPagerBean pager, + Object... params) throws TopiaException { + Preconditions.checkNotNull(pager); + + if (StringUtils.isNotBlank(pager.getSortColumn())) { + hql += " ORDER BY " + pager.getSortColumn(); + if (!pager.isSortAscendant()) { + hql += " DESC"; + } + } + List<E> result = tx.find(hql, + pager.getRecordStartIndex(), + pager.getRecordEndIndex() - 1, params); + return result; + } + + public static void computeAndAddRecordsToPager( + TopiaContext tx, + String countHql, + TopiaFilterPagerUtil.FilterPagerBean pager, + Object... params) throws TopiaException { + long records = (Long) tx.findUnique(countHql, params); + pager.setRecords((int) records); + PagerUtil.computeRecordIndexesAndPagesNumber(pager); + } }
participants (1)
-
tchemit@users.chorem.org