/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKCtrlWao
*	ソースファイル名：JKKCtrlWao.java
*	作成者			：FJ
*	日付			：2025年04月09日
*＜機能概要＞
*	ＷＡＯ社 外部連携（抽象）コマンド発行部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v75.00.00   2025/04/09  FJ)謝       【ANK-4640-00-00】typeN：追加要件対応
*
**********************************************************************/
package eo.common.util;

import java.util.Map;

import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

/**
 * ＷＡＯ社連携独自処理部品クラスです。
 * @author FJ
 */
public abstract class JKKCtrlWao
{
	/**
	 * 1:ＷＡＯ社連携（本番モード）
	 */
	private static final String WAO_SYSTEM = "1";

	/**
	 * 2:スタブモード
	 */
	private static final String WAO_STUB = "2";

	/**
	 * ＷＡＯ社連携の本番／スタブ切り替え処理
	 * 
	 * @return インスタンス
	 */
	public static JKKCtrlWao getInstance()
	{
		/**
		 * ＷＡＯ社接続モードフラグ
		 */
		
		String mode = JCMAPLConstMgr.getString("WAO_CONNECTION_MODE");

		if (mode.equals(WAO_SYSTEM))
		{
			return new JKKCtrlWaoImpl();
		}
		else if(mode.equals(WAO_STUB))
		{
			return new JKKCtrlWaoStubImpl();
		}
		else
		{
			return null;
		}
	}

	/**
	 * ＷＡＯ依頼を呼び出します。
	 * <br>
	 * @param serviceMap サービスマップハッシュテーブル
	 * @return サービスマップ戻り値
	 * @throws Exception
	 */
	public abstract Map<String, Object> call_wao(Map<String, Object> serviceMap) throws Exception;

}
