Java tutorial
/** * Copyright (c) 2005-2011 springside.org.cn * * Licensed under the Apache License, Version 2.0 (the "License"); * * $Id: Fixtures.java 1593 2011-05-11 10:37:12Z calvinxiu $ */ package cn.hxh.springside.orm; import java.util.List; import org.apache.commons.lang.StringUtils; import cn.hxh.springside.utils.AssertUtils; import com.google.common.collect.Lists; /** * ??. */ public class PageRequest { protected int pageNo = 1; protected int pageSize = 10; protected String orderBy = null; protected String orderDir = null; protected boolean countTotal = true; public PageRequest() { } public PageRequest(int pageNo, int pageSize) { this.pageNo = pageNo; this.pageSize = pageSize; } /** * ??, ??1, 1. */ public int getPageNo() { return pageNo; } /** * ??, ??1, 11. */ public void setPageNo(final int pageNo) { this.pageNo = pageNo; if (pageNo < 1) { this.pageNo = 1; } } /** * ??, 10. */ public int getPageSize() { return pageSize; } /** * ??, 11. */ public void setPageSize(final int pageSize) { this.pageSize = pageSize; if (pageSize < 1) { this.pageSize = 1; } } /** * ?, . ?','. */ public String getOrderBy() { return orderBy; } /** * ?, ?','. */ public void setOrderBy(final String orderBy) { this.orderBy = orderBy; } /** * ??, . */ public String getOrderDir() { return orderDir; } /** * ???. * * @param orderDir ?descasc,?','. */ public void setOrderDir(final String orderDir) { String lowcaseOrderDir = StringUtils.lowerCase(orderDir); //order? String[] orderDirs = StringUtils.split(lowcaseOrderDir, ','); for (String orderDirStr : orderDirs) { if (!StringUtils.equals(Sort.DESC, orderDirStr) && !StringUtils.equals(Sort.ASC, orderDirStr)) { throw new IllegalArgumentException("??" + orderDirStr + "??"); } } this.orderDir = lowcaseOrderDir; } /** * ??. */ public List<Sort> getSort() { String[] orderBys = StringUtils.split(orderBy, ','); String[] orderDirs = StringUtils.split(orderDir, ','); AssertUtils.isTrue(orderBys.length == orderDirs.length, "???,????"); List<Sort> orders = Lists.newArrayList(); for (int i = 0; i < orderBys.length; i++) { orders.add(new Sort(orderBys[i], orderDirs[i])); } return orders; } /** * ??,. */ public boolean isOrderBySetted() { return (StringUtils.isNotBlank(orderBy) && StringUtils.isNotBlank(orderDir)); } /** * ?. */ public boolean isCountTotal() { return countTotal; } /** * ?. */ public void setCountTotal(boolean countTotal) { this.countTotal = countTotal; } /** * ?pageNopageSize???, ??0. */ public int getOffset() { return ((pageNo - 1) * pageSize); } public static class Sort { public static final String ASC = "asc"; public static final String DESC = "desc"; private final String property; private final String dir; public Sort(String property, String dir) { this.property = property; this.dir = dir; } public String getProperty() { return property; } public String getDir() { return dir; } } }