/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JCHTokusokuStatBfExistReqChk
 *   ソースファイル名：JCHTokusokuStatBfExistReqChk.java
 *   作成者          ：富士通
 *   日付            ：2012年4月26日
 *＜機能概要＞
 *   引数に指定した項目の設定有無による実行判定を行う独自部品。。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v2.00.00	2012/4/26	富士通		新規作成
 *
 **********************************************************************/
package com.fujitsu.futurity.bp.custom.reqchk;

import com.fujitsu.futurity.bp.x21.bpm.common.AbstractCustomReqChk;
import com.fujitsu.futurity.bp.x21.bpm.common.IConditionValue;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.reqchk.exception.ReqChkException;

/**
 * 督促番号の設定有無による、実行判定を行う。
 * <p>
 * <br>
 * 
 * @author 富士通
 */
public class JCHTokusokuStatBfExistReqChk extends AbstractCustomReqChk {

	@Override
	/**
	 * 実行条件を判定します。 <br>
	 * @param irp リクエストパラメータ操作クラス
	 * @param conditionvalue 判定値格納クラス
	 * @return 判定結果
	 * @throws ReqChkException
	 **/
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException {

		String[] conditionValues = conditionvalue.get("value").split(",");
		// 対象SC名
		String scName = conditionValues[0];
		// 対象項目名
		String itemName = conditionValues[1];
		// 対象リスト名
		String listName = null;

		// 対象リスト名は呼出し時に未設定の場合もあるためlengthで判定
		if (conditionValues.length == 3) {
			listName = conditionValues[2];
		}

		// 督促番号
		String tokusokuNo = null;
		// 督促番号取得
		try
		{
			if (null != listName)
			{
				tokusokuNo = com.fujitsu.futurity.bp.custom.common.JCHBPCommon.getBPListValueString(irp, scName, listName, 0,itemName);
			}
			else
			{
				tokusokuNo = com.fujitsu.futurity.bp.custom.common.JCHBPCommon.getBPItemValueString(irp, scName, itemName);
			}
		}
		catch (RequestParameterException e)
		{
			tokusokuNo = null;
		}
		catch (IndexOutOfBoundsException e)
		{
			tokusokuNo = null;
		}

		// 実行判定
		if (tokusokuNo == null)
		{
			return false;
		}

		return true;
	}
}
