/*
 * ページSEQ管理クラス
 * 
 * 作成日: 2006/05/10
 */
package jp.co.ntt.lms.imode.extension;

import java.io.Serializable;

import jp.co.ntt.lms.xmo.util.DebugLog;

/**
 * ページSEQを管理するクラスです。
 * 
 * @author ntc-sakai
 */
public class PageSequence implements Serializable {

	/** カレント頁SEQ */
	private String currentPageSeq;

	/**
	 * コンストラクタ
	 * 頁SEQに初期値（１）を設定します。
	 */
	public PageSequence() {

		// 初期値設定
		currentPageSeq = "1";
	}

	/**
	 * ページSEQのチェックをし結果を戻します。
	 * 
	 * @param inPageSeq ページSEQ
	 * @return 正常な場合true エラーの場合false
	 */
	public boolean isCheck(String inPageSeq) {
		boolean bRtn;
		int inputPage;
		int currentPage;

		try {
			inputPage = Integer.parseInt(inPageSeq);
			bRtn = isCheck(inputPage);
		} catch (NumberFormatException e) {
			bRtn = false;
		}
		
		return bRtn;
	}

	/**
	 * ページSEQのチェックをし結果を戻します。
	 * 
	 * @param inPageSeq ページSEQ
	 * @return 正常 true エラー false
	 */
	public boolean isCheck(int inPageSeq) {
		boolean bRtn;
		int currentPage;

		try {
			currentPage = Integer.parseInt(this.currentPageSeq);
			bRtn = (inPageSeq == currentPage);
			// ＬＯＧ出力
			DebugLog.write(getClass(), "input Parameter SEQ:" + inPageSeq, DebugLog.ROW);
			DebugLog.write(getClass(), "current SEQ:" + this.currentPageSeq, DebugLog.ROW);
		} catch (NumberFormatException e) {
			bRtn = false;
		}
		
		return bRtn;
	}

	/**
	 * 次のページSEQを戻します。
	 * 
	 * @return 次のページSEQ
	 */
	public String current() {
		return currentPageSeq;
	}

	/**
	 * ページSEQを＋１します。
	 * 
	 * @return 次のページSEQ
	 */
	public void next() {
		int currentPage = 0;

		try {
			currentPage = Integer.parseInt(currentPageSeq) + 1;
			DebugLog.write(getClass(), "next SEQ:" + this.currentPageSeq, DebugLog.ROW);
			currentPageSeq = String.valueOf(currentPage);
		} catch (NumberFormatException e) {
		}
	}

	/**
	 * カレントページSEQを設定します。
	 * 
	 * @param currentPageSeq ページSEQ
	 */
	public void setCurrentPageSeq(int currentPageSeq) {
		this.currentPageSeq = String.valueOf(currentPageSeq);
	}

	/**
	 * カレントページSEQを設定します。
	 * 
	 * @param currentPageSeq ページSEQ
	 */
	public void setCurrentPageSeq(String currentPageSeq) {
		this.currentPageSeq = currentPageSeq;
	}
}