/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*   モジュール名    ：JTUModelCommon
*   ソースファイル名：JTUModelCommon.java
*	作成者			：FJ
*   日付            ：2011年06月13日
*＜機能概要＞
*   電話手続モデル共通アクセッサー部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*   v3.00.00    2011/06/13   FJ）楠神    新規作成
 *	v72.00.00	2024/04/01   FJ）中川	【ANK-4494-00-00】【eo定期】 双方向番ポ対応
*
**********************************************************************/

package eo.ejb.common;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.util.JTUStringUtil;
import eo.ejb.common.edit.JTUejbNumbering;
import eo.ejb.common.entity.JTUejbTU0151JSCK;
import eo.ejb.common.entity.JTUejbZM0081KRCK;



/**
 * モデル共通アクセッサー部品です。<p>
 * サービスインターフェイスで実装します。
 * <BR>
 * @author FJ
 */
public class JTUModelCommon extends JCCModelCommon
{

	/**
	 * オブジェクトに値が設定されているか判定します。
	 * <br>
	 * @param arg0 判定するオブジェクト
	 * @return オブジェクトに値が設定されていない場合はtrue
	 */
	public static boolean isNull(Object arg0) 
	{
		return JTUStringUtil.isNull(arg0);
	}

	
	/**
	 * 判定日が基準日より未来日か判定します。（比較対象がinMsgに含まれる場合）
	 * <br>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param judgeDay 判定日のKEY
	 * @param baseDay 基準日のKEY
	 * @param sameDayFlg 同日を含む／含まないの指定
	 * @return boolean 未来日：true、未来日以外：false。
	 */
	public static boolean isFutureDateForTU(CAANMsg inMsg, AgentDispatchContext inContext, Object judgeDay, Object baseDay, Object sameDayFlg) 
	{
		return isFutureDate(inMsg.getString((String)judgeDay), inMsg.getString((String)baseDay), (String)sameDayFlg);
	}

	/**
	 * 住所マスタの存在チェックを行う部品。
	 * （利用場所住所：住所コード「00000000000」を許さない。）
	 * @param inMsg 
	 * @param inContext 
	 * @param ad_cd 住所コード
	 * @param pcd 郵便番号
	 * @return データの存在有無
	 */
	public static boolean isAdCdExistsCheck001(CAANMsg inMsg, AgentDispatchContext inContext, Object ad_cd , Object pcd)
	{
		return JTUejbZM0081KRCK.isAdCdExistsCheck001(inMsg, inContext, ad_cd, pcd);
	}

	/**
	 * <p>
	 * 電話帳申込番号の採番を行います。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getDnwachoMskmNo(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		return JTUejbNumbering.getDnwachoMskmNo(inMsg, inContext);
	}
	
	/**
	 * <p>
	 * 電話帳申込内容番号の採番を行います。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getDnwachoMskmNaiyoNo(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		return JTUejbNumbering.getDnwachoMskmNaiyoNo(inMsg, inContext);
	}

	/**
	 * LIKE検索に設定する値に対して、ワイルドカードが含まれている場合、
	 * ESCAPE文字列を追加して値を返却します。
	 * 
	 * @param value ：設定値
	 * @return      : 変換後文字列
	 */
	public static String replaceLikeValue(Object value)
	{
		return JZMModelCommon.replaceLikeValue(value);
	}
	
	// ANK-4494-00-00 ADD START
	/**
	 * <p>
	 * ポートアウト受付情報の状態遷移チェックを行う。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return チェック結果が正常な場合はtrue
	 */
	public static boolean checkStateTransitionTU0151(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JTUejbTU0151JSCK instance = new JTUejbTU0151JSCK();
		return instance.checkStateTransition(arg0, arg1);
	}
	
	/**
	 * 空白で正規化する
	 * @param inMsg 対象のCBSメッセージ
	 * @param item  対象となる項目の項目名
	 * @param keta  正規化したい桁数
	 */
	public static void spaceNormalization(CAANMsg inMsg, String item, String keta)
	{
		if(null != inMsg.getString(item)){
			inMsg.set(item, inMsg.getString(item).format("%-" + keta + "s", inMsg.getString(item)));
		}
		else {
			inMsg.set(item, String.format("%-" + keta + "s", ""));
		}
	}
	// ANK-4494-00-00 ADD END
}