/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKSV048601ReqChk
*	ソースファイル名：JKKSV048601ReqChk.java
*	作成者			：FJ
*	日付			：2012年02月13日
*＜機能概要＞
*	ＩＰｖ６アドレス登録実行判定部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/02/13	FJ)今西		新規作成
*	v3.01.00	2012/05/25	FJ)藤原		【IT1-2012-0000489】利用開始日文字列の初期化を修正、即日の場合falseが返されるように修正
**********************************************************************/
package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

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 JKKSV048601ReqChk extends AbstractCustomReqChk {

	
	/**
	 * SOD発行CC 実行判定メソッド
	 */
	@Override
	public boolean checkExecution(IRequestParameterReadOnly arg0,
			IConditionValue arg1) throws ReqChkException {
		//SCマップから必要な情報を取り出す

		HashMap<String , Object> parentMap = null;
		ArrayList<HashMap<String, Object>> ipv6_list = null;
		String ipv6_ad = null;			// IPv6アドレス
		String strymd = null;			//開始年月日
		String unyo_ymd = null;		//運用日
		
		try 
		{
			// 実行判定項目マップから必要な情報を取り出す
			parentMap = (HashMap<String, Object>)arg0.getData("AddIpv6Info");
			if(parentMap != null)
			{
				
				unyo_ymd = (String)parentMap.get("unyo_ymd");
				String useStrymdYear = parentMap.get("use_staymd_year").toString();
				String useStrymdMon = parentMap.get("use_staymd_mon").toString();
				String useStrymdDay = parentMap.get("use_staymd_day").toString();
				
				strymd = useStrymdYear;
				strymd += useStrymdMon;
				strymd += useStrymdDay;
				
				ipv6_list = (ArrayList<HashMap<String,Object>>)parentMap.get("ipv6ad_list");
				ipv6_ad = (String) ipv6_list.get(0).get("ipv6_ad");
			}
		}
		catch (RequestParameterException e) 
		{
			return false;
		}
		
		// IPv6アドレスが払い出されている かつ 即日の場合
		if(ipv6_ad != null && !("").equals(ipv6_ad) && unyo_ymd.equals(strymd)){
			return true;
		}
		else
		{
			return false;
		}
	}

}
