All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tinygroup.mongodb.engine.PageInfo Maven / Gradle / Ivy

The newest version!
/**
 *  Copyright (c) 1997-2013, tinygroup.org ([email protected]).
 *
 *  Licensed under the GPL, Version 3.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *       http://www.gnu.org/licenses/gpl.html
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 * --------------------------------------------------------------------------
 *  版权 (c) 1997-2013, tinygroup.org ([email protected]).
 *
 *  本开源软件遵循 GPL 3.0 协议;
 *  如果您不遵循此协议,则不被允许使用此文件。
 *  你可以从下面的地址获取完整的协议文本
 *
 *       http://www.gnu.org/licenses/gpl.html
 */
package org.tinygroup.mongodb.engine;

import org.bson.BSONObject;

/**
 * 
 * 功能说明:分页查询返回对象的封装对象
 * 

* * 开发人员: renhui
* 开发时间: 2013-9-6
*
*/ public class PageInfo { /** * 当页记录集 */ private BSONObject[] objects; /** * 总记录数 */ private int totalSize; /** * 每页记录数 */ private int pageSize; /** * 当前页 */ private int pageNumber; /** * 总页数 */ private int totalPages; public PageInfo(BSONObject[] objects, int totalSize) { super(); this.objects = objects; this.totalSize = totalSize; } public PageInfo() { } public int getTotalSize() { return totalSize; } public void setTotalSize(int totalSize) { this.totalSize = totalSize; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageNumber() { return pageNumber; } public int getTotalPages() { return totalPages; } public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public BSONObject[] getObjects() { return objects; } public void setObjects(BSONObject[] objects) { this.objects = objects; } public void pageAttributeSet(int pageSize, int pageNumber, int totalSize) { // if (pageSize <= 0 || pageNumber <= 0 || totalSize < 0) { // throw new IllegalArgumentException( // "参数pageSize和pageNumber必须大于零,totalSize必须大于等于零"); // } if (pageNumber <= 0) { pageNumber = 1; } if (pageSize <= 0) { pageSize = 10; } this.totalSize = totalSize; this.pageSize = pageSize; this.totalPages = totalSize % pageSize == 0 ? (totalSize / pageSize) : (totalSize / pageSize + 1); this.pageNumber = pageNumber > totalPages ? (totalPages > 0 ? totalPages : 1) : pageNumber; } public int getStart() { return (pageNumber - 1) * pageSize; } /** * 获取数组长度,主要计算出最后一页的实际记录数 * * @param pageNumber * @param pageSize * @param totalPages * @param totalSize * @return */ public int getArraySize() { int temp = pageSize; if (totalSize < pageSize) { // 总数不够一页 temp = totalSize; } else if ((pageNumber == totalPages)) { temp = totalSize - pageSize * (totalPages - 1); // 最后一页实际记录数 } return temp; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy