package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.ArrayList;
import java.util.HashMap;

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;

public class JKKSV011801ReqChk extends AbstractCustomReqChk {

	/** ƒT[ƒrƒXŒ_–ñÆ¸(ˆ—‚n‚j)*/
	private static final String SVC_KEI_SHOSA_OK = "0";
	/** ƒT[ƒrƒXŒ_–ñÆ¸(ˆ—‚m‚f)*/
	private static final String SVC_KEI_SHOSA_NG = "1";
	/**ƒT[ƒrƒXŒ_–ñÆ¸(ŽæÁ)*/
	private static final String SVC_KEI_SHOSA_CLRE = "2";

	/**
	 * ƒJƒXƒ^ƒ€ŽÀs”»’èˆ—‚ðŽÀ‘•‚·‚éƒƒ\ƒbƒh
	 * Æ¸Œ‹‰Ê‚ªÆ¸OK‚Ìê‡‚ÉTrue‚ð•Ô‹p‚µ‚Ü‚·B
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException {

		String status = null;
		HashMap<String,Object> parentMap = null;
		ArrayList<HashMap<String, Object>> trgtDataList = null;
		
		try {
			// Æ¸î•ñ‚©‚ç•K—v‚Èî•ñ‚ðŽæ‚èo‚·
			parentMap = (HashMap<String,Object>)irp.getData("trgt_data");
			trgtDataList = (ArrayList<HashMap<String, Object>>)parentMap.get("trgt_data_list");
			for ( int i=0; i<trgtDataList.size(); i++ )
			{
				status = (String)trgtDataList.get(i).get("status");
				
				if (!SVC_KEI_SHOSA_OK.equals(status))
				{
					break;
				}
			}
			
		} catch (RequestParameterException e) {
			
		}
		
		// ”»’èˆ—
		/** ƒT[ƒrƒXŒ_–ñÆ¸(ˆ—‚n‚j)*/
		if(SVC_KEI_SHOSA_OK.equals(status))
		{
			return true;
		}
		/** ƒT[ƒrƒXŒ_–ñÆ¸(ˆ—‚m‚f)*/
		else if(SVC_KEI_SHOSA_NG.equals(status))
		{
			return false;
		}
		/**ƒT[ƒrƒXŒ_–ñÆ¸(ŽæÁ)*/
		else if(SVC_KEI_SHOSA_CLRE.equals(status))
		{
			return false;
		}else{
			return false;
		}
	}
}
