/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JSCModelCommon
*   ソースファイル名：JSCModelCommon.java
*   作成者          ：富士通
*   日付            ：2012年09月18日
*＜機能概要＞
*   サービス制御共通アクセッサー部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v3.00.00    2012/09/18   富士通      新規作成
*
**********************************************************************/

package eo.ejb.common;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.common.edit.JSCejbEditCommon;


/**
 * サービス制御共通アクセッサー部品です。<p>
 * サービスインターフェイスで実装します。
 * <BR>
 * @author 富士通
 */
public class JSCModelCommon extends JCCModelCommon
{
	/**
	 * <p>
	 * サービス制御システムのオンライン運用日付を取得します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return YYYYMMDD形式の共通オンライン運用日付
	 */
	public static Object getOpeDate(CAANMsg arg0, AgentDispatchContext arg1)
	{
		return getOpeDate(arg0, arg1, null);
	}
	
	/**
	 * <p>
	 * サービス制御システムのオンライン運用日時を取得します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return YYYYMMDDhhmmssSSS形式の共通オンライン運用日時
	 */
	public static Object getOpeDateTimeStamp(CAANMsg arg0, AgentDispatchContext arg1)
	{
		String opeDate = (String)getOpeDate(arg0, arg1, null);
		if (null == opeDate)
		{
			return null;
		}
		String opeTimeStamp = getSysDateTimeStamp();
		return opeDate + opeTimeStamp.substring(8, 17);
	}
	
	/**
	 * <p>
	 * 指定された入力値が未入力の場合、指定された初期値を返却します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 ディスパッチコンテキスト
	 * @param arg2 入力値
	 * @param arg3 初期値
	 * @return 入力値が入力されている場合は入力値、未入力の場合は初期値。
	 */
	public static Object setDefaultValueAsInNull(CAANMsg arg0, AgentDispatchContext arg1, Object arg2, Object arg3)
	{
		JSCejbEditCommon instance = new JSCejbEditCommon();
		return instance.setDefaultValueAsInNull(arg0, arg1, (String)arg2, (String)arg3);
	}
	
	/**
	 * <p>
	 * 指定された入力値が未入力の場合、共通部品で取得した運用日付を返却します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 ディスパッチコンテキスト
	 * @param arg2 入力値
	 * @return 入力値が入力されている場合は入力値、未入力の場合は運用日付。
	 */
	public static Object setOpeDateAsInNull(CAANMsg arg0, AgentDispatchContext arg1, Object arg2)
	{
		String opeDate = (String)getOpeDate(arg0, arg1);
		JSCejbEditCommon instance = new JSCejbEditCommon();
		return instance.setDefaultValueAsInNull(arg0, arg1, (String)arg2, opeDate);
	}
}
