/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JTUejbTU0051DBABase
*	ソースファイル名：JTUejbTU0051DBABase.java
*	作成者			：FJ
*	日付			：2011年06月14日
*＜機能概要＞
*	通信事業者データベースアクセス共通部品のスーパークラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2011/06/14	FJ)楠神		新規作成
*
**********************************************************************/

package eo.ejb.common.db;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.constant.JTUStrConst;
import eo.ejb.cbm.entity.TU0051ETMsg;

/**
 * <p>
 * 通信事業者へのデータベースアクセスクラスです。<br>
 * </p>
 * @author FJ
 */
public class JTUejbTU0051DBABase extends JTUejbDBABaseForMaster
{

	/**
	 * <p>
	 * 新しいJTUejbTU0051DBABaseを作成します。
	 * </p>
	 */
	public JTUejbTU0051DBABase()
	{
		super(TU0051ETMsg.class.getName());
	}

	/**
	 * <p>
	 * 世代を管理するエンティティか判定します。
	 * </p>
	 * @return 世代を管理するエンティティの場合はtrue
	 */
	protected boolean isGenerationMgr()
	{
		return false;
	}

	/**
	 * <p>
	 * 世代を管理するカラム名を取得します。
	 * </p>
	 * @return 世代を管理するカラム名
	 */
	protected String getGenerationColumn()
	{
		return null;
	}

	/**
	 * <p>
	 * 無効状態を管理するカラム名を取得します。
	 * </p>
	 * @return 無効状態を管理するカラム名
	 */
	protected String getInvalidColumn()
	{
		return TU0051ETMsg.MK_FLG;
	}

	/**
	 * <p>
	 * 予約を管理するエンティティか判定します。
	 * </p>
	 * @return 予約を管理するエンティティの場合はtrue
	 */
	protected boolean isReserveMgr()
	{
		return false;
	}
	

	/**
	 * <p>
	 * 予約適用基準日となるカラム名を取得します。
	 * </p>
	 * @return 予約適用基準日となるカラム名
	 */
	protected String getCurrentColumn()
	{
		return null;
	}

	/**
	 * <p>
	 * 適用年月日の状態を管理するエンティティか判定します。
	 * </p>
	 * @return 適用年月日の状態を管理するエンティティの場合はtrue
	 */
	protected boolean istymdMgr()
	{
		return true;
	}

	/**
	 * <p>
	 * 適用開始年月日を管理するカラム名を取得します。
	 * </p>
	 * @return 適用開始年月日を管理するカラム名
	 */
	protected String gettstaymdColumn()
	{
		return TU0051ETMsg.TSJGS_TSTAYMD;
	}

	/**
	 * <p>
	 * 適用終了年月日を管理するカラム名を取得します。
	 * </p>
	 * @return 適用終了年月日を管理するカラム名
	 */
	protected String gettendymdColumn()
	{
		return TU0051ETMsg.TSJGS_TENDYMD;
	}

	/**
	 * <p>
	 * 自社の通信事業者コードの取得を行います。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param arg1 運用日付
	 * @return 自社の通信事業者コードを返却する。
	 */
	public Object getTushinJgyoshaCd(CAANMsg inMsg, AgentDispatchContext inContext, String arg1)
	{
		
		if(arg1 == null)
		{
			return null;
		}
		
		// 検索条件の設定
		CAANMsg msg = new CAANMsg(TU0051ETMsg.class.getName());
		msg.set(TU0051ETMsg.JISHA_TASHA_FLG, JTUStrConst.JISYA_FLG);
		msg.set(TU0051ETMsg.TSJGS_TSTAYMD, arg1);
		msg.set(TU0051ETMsg.TSJGS_TENDYMD, arg1);

		// 検索処理の実行
		String whereStr = " where JISHA_TASHA_FLG = ? and TSJGS_TSTAYMD <= ? and TSJGS_TENDYMD >= ? and MK_FLG = '0'";
		String[] whereList = {TU0051ETMsg.JISHA_TASHA_FLG, TU0051ETMsg.TSJGS_TSTAYMD, TU0051ETMsg.TSJGS_TENDYMD};
		String[][] selList = getSelectColumnList();
		CAANMsg[] ret = super.findByCondition(whereStr, whereList, msg, 0, selList[1]);

		// 検索結果の判定
		if (ret == null || ret.length == 0)
		{
			return null;
		}

		return ret[0].getObject(TU0051ETMsg.TSJGS_CD);
	}
}
