//
// Method 管理XMO 入力チェッククラス
//		変更履歴
//			2005.04.26	新規作成  梅原 浩司
//
package jp.co.ntt.lms.xmo.Method;

import jp.co.ntt.lms.xmo.Method.MethodTable;
import jp.co.ntt.lms.xmo.util.XMOCheck;

/**
 * Method 管理XMO 入力チェックのクラスです。<BR>
 * Methodテーブルの各フィールドの入力チェック処理を行います。
 * @auther 梅原 浩司
 * @version 0.0.0.1 2005.04.26
 */
public class MethodCheck extends XMOCheck
	implements MethodMessage, MethodTable 
{
	/**
	* LOIDフィールドの入力チェック処理を行います.
	* @param strCheck チェック文字列
	* @param bRequire 必須区分(必須:true/必須でない:false)
	* * @return String エラーID チェックＯＫのときは空文字で返します。
	*/
	public static String checkLOID( String strCheck, boolean bRequire ) {

		// 必須チェック
		if( bRequire ) {
			if( !XMOCheck.checkHissu(strCheck) ) {
				return LOID_HISSU_WAR;
			}
		}

		// LOIDフィールドのバイト長チェック
		if(!XMOCheck.checkLenB(strCheck, LOID_LENB)) {
			return LOID_LEN_WAR;
		}
		return "";
	}

	/**
	* MethodLoIDフィールドの入力チェック処理を行います.
	* @param strCheck チェック文字列
	* @param blHissu 必須チェック区分 true: 必須チェックを行います
	*                                 false: 必須チェックを行いません
	* @return String エラーID チェックＯＫのときは空文字で返します。
	*/
	public static String checkMethodLoID( String strCheck, boolean blHissu ) {

		// 必須チェック
		if( blHissu ) {
			if( !XMOCheck.checkHissu(strCheck) ) {
				return METHODLOID_HISSU_WAR;
			}
		}

		//METHOD_LO_IDフィールドのバイト長チェック
		if(!XMOCheck.checkLenB(strCheck, METHODLOID_LENB)){
			return METHODLOID_LEN_WAR;
		}
		return "";
	}
	
	/**
	* ParallelFlagフィールドの入力チェック処理を行います.
	* @param strCheck チェック文字列
	* @param blHissu 必須チェック区分 true: 必須チェックを行います
	*                                 false: 必須チェックを行いません
	* @return String エラーID チェックＯＫのときは空文字で返します。
	*/
	public static String checkParallelFlag( String strCheck, boolean blHissu ) {

		// 必須チェック
		if( blHissu ) {
			if( !XMOCheck.checkHissu(strCheck) ) {
				return PARALLELFLAG_HISSU_WAR;
			}
		}

		//PARALLELFLAGフィールドのバイト長チェック
		if(!XMOCheck.checkLenB(strCheck, PARALLELFLAG_LENB)){
			return PARALLELFLAG_LEN_WAR;
		}
		return "";
	}
	
	/**
	* start_dateフィールドの入力チェック処理を行います.
	* @param strCheck チェック文字列
	* @param blHissu 必須チェック区分 true: 必須チェックを行います
	*                                 false: 必須チェックを行いません
	* @return String エラーID チェックＯＫのときは空文字で返します。
	*/
	public static String checkStart_date( String strCheck, boolean blHissu ) {

		// 必須チェック
		if( blHissu ) {
			if( !XMOCheck.checkHissu(strCheck) ) {
				return STARTDATE_HISSU_WAR;
			}
		}

		//start_dateフィールドのバイト長チェック
		if(!XMOCheck.checkLenB(strCheck, STARTDATE_LENB)){
			return STARTDATE_LEN_WAR;
		}

		//start_dateフィールドの日付チェック
		if(!XMOCheck.checkDate(strCheck)){
			return STARTDATE_DATE_WAR;
		}
		return "";
	}
	
	/**
	* end_dateフィールドの入力チェック処理を行います.
	* @param strCheck チェック文字列
	* @param blHissu 必須チェック区分 true: 必須チェックを行います
	*                                 false: 必須チェックを行いません
	* @return String エラーID チェックＯＫのときは空文字で返します。
	*/
	public static String checkEnd_date( String strCheck, boolean blHissu ) {

		// 必須チェック
		if( blHissu ) {
			if( !XMOCheck.checkHissu(strCheck) ) {
				return ENDDATE_HISSU_WAR;
			}
		}

		//end_dateフィールドのバイト長チェック
		if(!XMOCheck.checkLenB(strCheck, ENDDATE_LENB)){
			return ENDDATE_LEN_WAR;
		}

		//end_dateフィールドの日付チェック
		if(!XMOCheck.checkDate(strCheck)){
			return ENDDATE_DATE_WAR;
		}
		return "";
	}
	
	/**
	* period_numフィールドの入力チェック処理を行います.
	* @param strCheck チェック文字列
	* @param blHissu 必須チェック区分 true: 必須チェックを行います
	*                                 false: 必須チェックを行いません
	* @return String エラーID チェックＯＫのときは空文字で返します。
	*/
	public static String checkPeriod_num( String strCheck, boolean blHissu ) {

		// 必須チェック
		if( blHissu ) {
			if( !XMOCheck.checkHissu(strCheck) ) {
				return PERIODNUM_HISSU_WAR;
			}
		}

		//period_numフィールドのバイト長チェック
		if(!XMOCheck.checkLenB(strCheck, PERIODNUM_LENB)){
			return PERIODNUM_LEN_WAR;
		}
		
		//数値チェック
		if(!XMOCheck.checkNumeric(strCheck, true)){
			return PERIODNUM_NUMERIC_WAR;
		}
		return "";
	}
	
	/**
	* BeforeLearnFlagフィールドの入力チェック処理を行います.
	* @param strCheck チェック文字列
	* @param blHissu 必須チェック区分 true: 必須チェックを行います
	*                                 false: 必須チェックを行いません
	* @return String エラーID チェックＯＫのときは空文字で返します。
	*/
	public static String checkBeforeLearnFlag( String strCheck, boolean blHissu ) {

		// 必須チェック
		if( blHissu ) {
			if( !XMOCheck.checkHissu(strCheck) ) {
				return BEFORELEARNFLAG_HISSU_WAR;
			}
		}

		//BeforeLearnFlagフィールドのバイト長チェック
		if(!XMOCheck.checkLenB(strCheck, BEFORELEARNFLAG_LENB)){
			return BEFORELEARNFLAG_LEN_WAR;
		}
		return "";
	}
	
	/**
	* AfterLearnFlagフィールドの入力チェック処理を行います.
	* @param strCheck チェック文字列
	* @param blHissu 必須チェック区分 true: 必須チェックを行います
	*                                 false: 必須チェックを行いません
	* @return String エラーID チェックＯＫのときは空文字で返します。
	*/
	public static String checkAfterLearnFlag( String strCheck, boolean blHissu ) {

		// 必須チェック
		if( blHissu ) {
			if( !XMOCheck.checkHissu(strCheck) ) {
				return AFTERLEARNFLAG_HISSU_WAR;
			}
		}

		//AfterLearnFlagフィールドのバイト長チェック
		if(!XMOCheck.checkLenB(strCheck, AFTERLEARNFLAG_LENB)){
			return AFTERLEARNFLAG_LEN_WAR;
		}
		return "";
	}

	
}
