/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JTUejbBnchigoLengthCheck
*	ソースファイル名：JTUejbBnchigoLengthCheck.java
*	作成者			：FJ
*	日付			：2012年05月29日
*＜機能概要＞
*	番地・号に対する単関連制約を定義する。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/05/29	FJ)宮本		新規作成
*	v4.00.00	2012/05/29	FJ)宮本		ANK-0398-00-00
*	v4.00.02	2012/10/10	FJ)宮本		IT1-2012-0001209
*
**********************************************************************/
package eo.ejb.common.itemrelation;

import java.util.HashMap;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.constant.JPCStrConst;
import eo.common.util.JPCCommonUtil;
import eo.common.util.JPCAdCommonCheckUtil;
import eo.ejb.common.JTUModelCommon;

/**
 * 番地号桁数制約部品<p>
 * <br>
 * @author FJ
 */
public class JTUejbBnchigoLengthCheck extends JPCCommonUtil
{

	/** 番地号チェック桁数 */
	private static final int BNCHIGO_LEN = 15;
	private static final int BNCHIGO_MIN_LEN = 5;

	/**
	 * <p>
	 * 設置場所番地号桁数制約
	 * <p>
	 * <BR>
	 * 設置場所住所の番地・号は１５桁以内であることを確認する。
	 * @param inMsg
	 * @param inContext
	 * @param bnchigoName
	 * @return boolean
	 */
	public static boolean checkSetplaceBnchigoLengthCheck(CAANMsg inMsg, AgentDispatchContext inContext, Object bnchigoName) 
	{
		
		if(JTUModelCommon.isNull(bnchigoName))
		{
			return false;
		}
		
		if (inMsg.isNull((String)bnchigoName))
		{
			// 未設定の場合、falseを返却。
			return false;
		}
		
		String bnchigo = inMsg.getString((String)bnchigoName);
		
		if(bnchigo.length() > BNCHIGO_LEN)
		{
			return false;
		}
		return true;
	}
	
	/**
	 * <p>
	 * 番地号桁数制約
	 * <p>
	 * <BR>
	 * 住所コードを基に、各項目の文字列数が超過していないか判定を行う
	 * <BR>
	 * @param inMsg
	 * @param inContext
	 * @param adcd_nm
	 * @param pcd_nm
	 * @param admaninputFlg_nm
	 * @param stateNm_nm
	 * @param cityNm_nm
	 * @param oaztsuNm_nm
	 * @param azchoNm_nm
	 * @param bnchigo_nm
	 * @param adrttm_nm
	 * @param adrrm_nm
	 * @return boolean
	 */
	public static boolean checkBnchigoCheck(
			CAANMsg inMsg,
			AgentDispatchContext inContext,
			Object adcd_nm, 
			Object pcd_nm,
			Object admaninputFlg_nm,
			Object stateNm_nm,
			Object cityNm_nm,
			Object oaztsuNm_nm,
			Object azchoNm_nm,
			Object bnchigo_nm,
			Object adrttm_nm,
			Object adrrm_nm)
	{
		
		if(JTUModelCommon.isNull(adcd_nm))
		{
			return false;
		}
		if(JTUModelCommon.isNull(pcd_nm))
		{
			return false;
		}
		if(JTUModelCommon.isNull(admaninputFlg_nm))
		{
			return false;
		}
		if(JTUModelCommon.isNull(stateNm_nm))
		{
			return false;
		}
		if(JTUModelCommon.isNull(cityNm_nm))
		{
			return false;
		}
		if(JTUModelCommon.isNull(oaztsuNm_nm))
		{
			return false;
		}
		if(JTUModelCommon.isNull(azchoNm_nm))
		{
			return false;
		}
		if(JTUModelCommon.isNull(bnchigo_nm))
		{
			return false;
		}
		if(JTUModelCommon.isNull(adrttm_nm))
		{
			return false;
		}
		if(JTUModelCommon.isNull(adrrm_nm))
		{
			return false;
		}
		
		// 出力結果格納先を生成
		HashMap<String, Object> rsltMap = new HashMap<String, Object>();
		
		rsltMap = JPCAdCommonCheckUtil.ad61MojiChk(
				inMsg.getString((String)adcd_nm), 
				inMsg.getString((String)pcd_nm),
				inMsg.getString((String)admaninputFlg_nm),
				inMsg.getString((String)stateNm_nm),
				inMsg.getString((String)cityNm_nm),
				inMsg.getString((String)oaztsuNm_nm),
				inMsg.getString((String)azchoNm_nm),
				inMsg.getString((String)bnchigo_nm),
				inMsg.getString((String)adrttm_nm),
				inMsg.getString((String)adrrm_nm));
		
		return (Boolean)rsltMap.get(JPCStrConst.ad61MojiChk);
	}
	
	/**
	 * <p>
	 * 番地号最小桁数制約
	 * <p>
	 * <BR>
	 * 番地・号が５桁以上であることを確認する。
	 * @param inMsg
	 * @param inContext
	 * @param bnchigoName
	 * @return boolean
	 */
	public static boolean checkBnchigoMinLengthCheck(CAANMsg inMsg, AgentDispatchContext inContext, Object bnchigoName) 
	{
		
		if(JTUModelCommon.isNull(bnchigoName))
		{
			return false;
		}
		
		if (inMsg.isNull((String)bnchigoName))
		{
			// 未設定の場合、falseを返却。
			return false;
		}
		
		String bnchigo = inMsg.getString((String)bnchigoName);
		
		if(bnchigo.length() < BNCHIGO_MIN_LEN)
		{
			return false;
		}
		return true;
	}
}
