content: import java.util.Arrays;
  import java.util.List;
  
  /**
   * 对Page<E>结果进行包装
   * <p/>
   * 新增分页的多项属性，主要参考:http://bbs.csdn.net/topics/360010907
   *
   * @author liuzh/abel533/isea533
   * @version 3.3.0
   * @since 3.2.2
   * 项目地址 : http://git.oschina.net/free/Mybatis_PageHelper
   */
  @SuppressWarnings({"rawtypes", "unchecked"})
  public class PageInfo<T> {
      /**
       * 当前页
       */
      private int pageNum;
      /**
       * 每页的数量
       */
      private int pageSize;
      /**
       * 当前页的数量
       */
      private int size;
  
      /**
       * 当前页面第一个元素在数据库中的行号
       */
      private long startRow;
      /**
       * 当前页面最后一个元素在数据库中的行号
       */
      private long endRow;
      /**
       * 总页数
       */
      private int pages;
      /**
       * 前一页
       */
      private int prePage;
      /**
       * 下一页
       */
      private int nextPage;
  
      /**
       * 是否为第一页
       */
      private boolean isFirstPage = false;
      /**
       * 是否为最后一页
       */
      private boolean isLastPage = false;
      /**
       * 是否有前一页
       */
      private boolean hasPreviousPage = false;
      /**
       * 是否有下一页
       */
      private boolean hasNextPage = false;
  
      /**
       * 导航页码数
       */
      private int navigatePages;
      /**
       * 所有导航页号
       */
      private int[] navigatepageNums;
      /**
       * 导航条上的第一页
       */
      private int navigateFirstPage;
      /**
       * 导航条上的最后一页
       */
      private int navigateLastPage;
  
      /**
       * 总记录数
       */
      private long total;
      /**
       * 结果集
       */
      private List<T> list;
  
      public PageInfo() {
      }
  
  
      public long getTotal() {
          return total;
      }
  
      public void setTotal(long total) {
          this.total = total;
      }
  
      public List<T> getList() {
          return list;
      }
  
      public void setList(List<T> list) {
          this.list = list;
      }
  
      /**
       * 是否包含内容
       */
      public boolean hasContent() {
          return this.size > 0;
      }
  
      public int getPageNum() {
          return pageNum;
      }
  
      public void setPageNum(int pageNum) {
          this.pageNum = pageNum;
      }
  
      public int getPageSize() {
          return pageSize;
      }
  
      public void setPageSize(int pageSize) {
          this.pageSize = pageSize;
      }
  
      public int getSize() {
          return size;
      }
  
      public void setSize(int size) {
          this.size = size;
      }
  
      public long getStartRow() {
          return startRow;
      }
  
      public void setStartRow(long startRow) {
          this.startRow = startRow;
      }
  
      public long getEndRow() {
          return endRow;
      }
  
      public void setEndRow(long endRow) {
          this.endRow = endRow;
      }
  
      public int getPages() {
          return pages;
      }
  
      public void setPages(int pages) {
          this.pages = pages;
      }
  
      public int getPrePage() {
          return prePage;
      }
  
      public void setPrePage(int prePage) {
          this.prePage = prePage;
      }
  
      public int getNextPage() {
          return nextPage;
      }
  
      public void setNextPage(int nextPage) {
          this.nextPage = nextPage;
      }
  
      public boolean isIsFirstPage() {
          return isFirstPage;
      }
  
      public void setIsFirstPage(boolean isFirstPage) {
          this.isFirstPage = isFirstPage;
      }
  
      public boolean isIsLastPage() {
          return isLastPage;
      }
  
      public void setIsLastPage(boolean isLastPage) {
          this.isLastPage = isLastPage;
      }
  
      public boolean isHasPreviousPage() {
          return hasPreviousPage;
      }
  
      public void setHasPreviousPage(boolean hasPreviousPage) {
          this.hasPreviousPage = hasPreviousPage;
      }
  
      public boolean isHasNextPage() {
          return hasNextPage;
      }
  
      public void setHasNextPage(boolean hasNextPage) {
          this.hasNextPage = hasNextPage;
      }
  
      public int getNavigatePages() {
          return navigatePages;
      }
  
      public void setNavigatePages(int navigatePages) {
          this.navigatePages = navigatePages;
      }
  
      public int[] getNavigatepageNums() {
          return navigatepageNums;
      }
  
      public void setNavigatepageNums(int[] navigatepageNums) {
          this.navigatepageNums = navigatepageNums;
      }
  
      public int getNavigateFirstPage() {
          return navigateFirstPage;
      }
  
      public int getNavigateLastPage() {
          return navigateLastPage;
      }
  
      public void setNavigateFirstPage(int navigateFirstPage) {
          this.navigateFirstPage = navigateFirstPage;
      }
  
      public void setNavigateLastPage(int navigateLastPage) {
          this.navigateLastPage = navigateLastPage;
      }
  
      @Override
      public String toString() {
          final StringBuilder sb = new StringBuilder("PageInfo{");
          sb.append("pageNum=").append(pageNum);
          sb.append(", pageSize=").append(pageSize);
          sb.append(", size=").append(size);
          sb.append(", startRow=").append(startRow);
          sb.append(", endRow=").append(endRow);
          sb.append(", total=").append(total);
          sb.append(", pages=").append(pages);
          sb.append(", list=").append(list);
          sb.append(", prePage=").append(prePage);
          sb.append(", nextPage=").append(nextPage);
          sb.append(", isFirstPage=").append(isFirstPage);
          sb.append(", isLastPage=").append(isLastPage);
          sb.append(", hasPreviousPage=").append(hasPreviousPage);
          sb.append(", hasNextPage=").append(hasNextPage);
          sb.append(", navigatePages=").append(navigatePages);
          sb.append(", navigateFirstPage=").append(navigateFirstPage);
          sb.append(", navigateLastPage=").append(navigateLastPage);
          sb.append(", navigatepageNums=");
          if (navigatepageNums == null) {
              sb.append("null");
          } else {
              sb.append('[');
              for (int i = 0; i < navigatepageNums.length; ++i) {
                  sb.append(i == 0 ? "" : ", ").append(navigatepageNums[i]);
              }
              sb.append(']');
          }
          sb.append('}');
          return sb.toString();
      }
  }
  