/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKCtrlMvsoSvcKeiInfo
*   ソースファイル名：JKKCtrlMvsoSvcKeiInfo.java
*   作成者          ：富士通
*   日付            ：2013年12月17日
*＜機能概要＞
*   MVNOサービス契約お客様変更 SOAP連携（抽象）コマンド発行部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v8.00.00	2013/12/17	 FJ) 稲岡	 【ANK-1584-00-00】対応 L2-MVNO(本体)
 * 	v28.00.00	2016/10/28	 FJ）二村	 【ANK-3033-00-00】対応
*
**********************************************************************/
package eo.ejb.common;

import java.sql.Connection;
import java.util.Map;

import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

/**
 * MVNOサービス契約お客様変更処理部品クラスです。
 * @author 富士通
 */
public abstract class JKKCtrlMvnoSvcKeiInfo
{
	/**
	 * 1:MVNOシステム
	 */
	private static final String MVNO_SYSTEM = "1";

	/**
	 * 2:スタブ
	 */
	private static final String MVNO_STUB = "2";

	/**
	 * サービスIF_ID
	 */
	public static final String TEMPLATEID;

	/**
	 * 識別コード
	 */
	public static final String IDENTIFYCD;

	/**
	 * ステータス
	 */
	public static final String STATUS;

	/**
	 * オペレータ_ID
	 */
	public static final String OPERATORID;

	/**
	 * 運用日付
	 */
	public static final String OPERATEDATE;

	/**
	 * 運用日時
	 */
	public static final String OPERATEDATETIME;

	/**
	 * 権限制御用項目
	 */
	public static final String AC_GROUP_CD;

	/**
	 * 機能コード
	 */
	public static final String FUNC_CODE;

	/**
	 * エラーレベル
	 */
	public static final String ERROR_LEVEL;

	/**
	 * リターンコード
	 */
	public static final String RETURN_CD;

	/**
	 * リターンメッセージ
	 */
	public static final String RETURN_MESSAGE;

    /**
     * サービス契約番号
     */
    public static final String SVC_KEI_NO;

    /**
     * SYSID
     */
    public static final String SYSID;

	/**
	 * サービス_ID
	 */
	public static final String SERVICEID;

    /**
     * SOAPレスポンス
     */
    public static final String SOAP_RESPONSE;

		// ▼▼ ANK-3033-00-00 ADD START ▼▼

	/**
	 * サービスインターフェイスID（※識別子）
	 */
	public static final String SERVICEIFID;

	/**
	 * サービスインターフェイス
	 */
	public static final String SERVICEIF;

	/**
	 * 外部システムインターフェイスID※EKKA0030001以外で使用
	 */
	public static final String OUT_IF_ID_ELSE ;

	// ▲▲ ANK-3033-00-00 ADD END ▲▲

	/**
	 * 静的初期化子です。
	 * 項目名定数の値を設定します。
	 */
	static
	{
		TEMPLATEID = "templateID";
		IDENTIFYCD = "identifyCD";
		STATUS = "status";
		OPERATORID = "operatorID";
		OPERATEDATE = "operateDate";
		OPERATEDATETIME = "operateDatetime";
		AC_GROUP_CD = "ac_group_cd";
		FUNC_CODE = "func_code";
		ERROR_LEVEL = "error_level";
		// ▼▼ ANK-3033-00-00 DEL START ▼▼
		//RETURN_CD = "return_Cd";
		// ▲▲ ANK-3033-00-00 DEL END ▲▲
		RETURN_MESSAGE = "return_Message";
        SVC_KEI_NO = "svc_kei_no";
        SYSID = "sysid";
		SERVICEID = "serviceID";
		SOAP_RESPONSE = "soap_response";
		// ▼▼ ANK-3033-00-00 ADD START ▼▼      
		SERVICEIFID = "serviceifID";
		SERVICEIF = "service_if";
		OUT_IF_ID_ELSE = "out_if_id_else";
		RETURN_CD = "returnCode";
		// ▲▲ ANK-3033-00-00 ADD END ▲▲
	}
	
	/**
	 * MVNO連携の本番／スタブ切り替え処理
	 * 
	 * @return インスタンス
	 */
	public static JKKCtrlMvnoSvcKeiInfo getInstance()
	{
		/**
		 * MVNOシステム接続モードフラグ
		 */
		String str_flag = JCCModelCommon.getApplicationConst("MVNO_CONNECTION_MODE");
		
		if(str_flag.equals(MVNO_SYSTEM))
		{
			return JKKCtrlMvnoSvcKeiInfoImpl.getInstance();
		}
		else if(str_flag.equals(MVNO_STUB))
		{
			return JKKCtrlMvnoSvcKeiInfoStubImpl.getInstance();
		}
		else
		{
			return null;
		}
	}
	
	/**
	 * MVNO連携用
	 * 
	 * @param serviceMap サービスマップハッシュテーブル
	 * @return サービスマップ戻り値
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public abstract Map ctrlMvnoInfo_KKA0003(Map serviceMap) throws Exception;
	
	public abstract void setInContext(AgentDispatchContext inContext);
	
	public abstract void setConnection(Connection con);
}
