package addressbook;

/**
 * ページング処理クラス
 * @author hyamashita
 */
public class PagerBean {

	int offset = 20;  // 1ページあたりの表示件数
	int page_num;     // 現在のページ番号
	int next_page;    // 次ページ番号（次ページがない場合は0）
	int prev_page;    // 前ページ番号（前ページがない場合は0）
	int max_item;     // 一覧で表示する合計件数

	/**
	 * コンストラクタ　現在ページを1とする
	 *
	 */
	public PagerBean(){
		this.page_num = 1;
		this.next_page = 0;
		this.prev_page = 0;
		this.max_item = 0;
	}
	
	/**
	 * オフセット値を取得
	 * @return オフセット値
	 */
	public int getOffset(){
	    return this.offset;
	}

	/**
	 * オフセット値を設定
	 * @param offset
	 */
	public void setOffset(int offset){
		this.offset = offset;		
	}
	
	/**
	 * 現在のページ番号を取得
	 * @return 現在のページ番号
	 */
	public int getPage_num(){
	    return this.page_num;
	}
	
	/**
	 * 現在のページを設定 
	 * @param page_num
	 */
	public void setPage_num(int page_num){
		this.page_num = page_num;		
	}
	
	/**
	 * 次ページ番号を取得
	 * @return 次ページ番号
	 */
	public int getNext_page(){
		// 現ページの件数が全件数以上であれば次ページは無い
		if(this.offset * this.page_num >= this.max_item){
			this.next_page = 0;
		}
		else{
			this.next_page = this.page_num + 1;
		}
		return this.next_page;
	}

	/**
	 * 次ページ番号を設定
	 * @param next_page
	 */
	public void setNext_page(int next_page){
		this.next_page = next_page;		
	}

	/**
	 * 前ページ番号を取得
	 * @return 前ページ番号
	 */
	public int getPrev_page(){
		// 現ページ-1が0以下であれば前ページは無い
		if(this.page_num - 1  <= 0){
			this.prev_page = 0;
		}
		else{
			this.prev_page = this.page_num - 1;
		}
	    return this.prev_page;
	}
	
	/**
	 * 前ページ番号を設定
	 * @param prev_page
	 */
	public void setPrev_page(int prev_page){
		this.prev_page = prev_page;		
	}

	/**
	 * 表示オブジェクトの最大値を取得
	 * @return 最大件数
	 */
	public int getMax_item(){
	    return this.max_item;
	}
	
	/**
	 * 表示オブジェクトの最大値を設定
	 * @param max_item
	 */
	public void setMax_item(int max_item){
		this.max_item = max_item;
	}
	
}

