// ======================================================================== // Copyright (C) zeroth Project Team. All rights reserved. // GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 // http://www.gnu.org/licenses/agpl-3.0.txt // ======================================================================== package zeroth.framework.standard.shared; /** * ページ条件 * @author nilcy */ public class PageRequest implements Pageable { /** ページ番号 */ private final int page; /** ページ・サイズ */ private final int size; /** ソート条件 */ private Sort sort; /** * コンストラクタ * @param page ページ番号 * @param size ページサイズ */ public PageRequest(final int page, final int size) { this.page = page; this.size = size; } /** * コンストラクタ * @param page ページ番号 * @param size ページサイズ * @param direction ソート方向 * @param properties ソート属性 */ public PageRequest(final int page, final int size, final Sort.Direction direction, final String... properties) { this.page = page; this.size = size; sort = new Sort(direction, properties); } /** * コンストラクタ * @param page ページ番号 * @param size ページサイズ * @param sort ソート条件 */ public PageRequest(final int page, final int size, final Sort sort) { this.page = page; this.size = size; this.sort = sort; } /** {@inheritDoc} */ @Override public int getOffset() { return (page - 1) * size; } /** {@inheritDoc} */ @Override public int getPageNumber() { return page; } /** {@inheritDoc} */ @Override public int getPageSize() { return size; } /** {@inheritDoc} */ @Override public Sort getSort() { return sort; } }