/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKCtrlMcafeeInfo
*	ソースファイル名：JKKCtrlMcafeeInfo.java
*	作成者			：FJ）原田
*	日付			：2017年04月18日
*＜機能概要＞
*	マカフィー社 外部連携（抽象）コマンド発行部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v32.00.00	2017/04/18  FJ)原田		【ANK-3149-00-00】新セキュリティパック
*
**********************************************************************/
package eo.common.util;

import java.util.Map;

import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

/**
 * マカフィー社連携独自処理部品クラスです。
 * @author FJ
 */
public abstract class JKKCtrlMcafeeInfo
{
	/**
	 * 1:マカフィー社連携（本番モード）
	 */
	private static final String MCAFEE_SYSTEM = "1";

	/**
	 * 2:スタブモード
	 */
	private static final String MCAFEE_STUB = "2";

	/**
	 * ＩＮパラメータ
	 */
	public static final String IN_PARAM = "inParam";

	/**
	 * ＯＵＴパラメータ
	 */
	public static final String OUT_PARAM = "outParam";

	/**
	 * リセラＩＤ
	 */
	public static final String RESELLERID = "resellerId";

	/**
	 * 商品ＩＤ
	 */
	public static final String PRODUCTID = "productId";
	
	/**
	 * 会員ＩＤ
	 */
	public static final String MEMBERID = "memberId";
	
	/**
	 * 数量
	 */
	public static final String QUANTITY = "quantity";
	
	/**
	 * キャンペーンＩＤ
	 */
	public static final String CAMPAIGNID = "campaignId";
	
	/**
	 * パスワード
	 */
	public static final String PASSWORD = "password";
	

	/**
	 * マカフィー社連携の本番／スタブ切り替え処理
	 * 
	 * @return インスタンス
	 */
	public static JKKCtrlMcafeeInfo getInstance()
	{
		/**
		 * マカフィー社接続モードフラグ
		 */
		
		String mode = JCMAPLConstMgr.getString("MCAFEE_CONNECTION_MODE");

		if (mode.equals(MCAFEE_SYSTEM))
		{
			return new JKKCtrlMcafeeInfoImpl();
		}
		else if(mode.equals(MCAFEE_STUB))
		{
			return new JKKCtrlMcafeeInfoStubImpl();
		}
		else
		{
			return null;
		}
	}

	/**
	 * KKIFE354_マカフィー申込・キャンセル依頼を呼び出します。
	 * <br>
	 * @param serviceMap サービスマップハッシュテーブル
	 * @return サービスマップ戻り値
	 * @throws Exception
	 */
	public abstract Map<String, Object> call_KKIFE354(Map<String, Object> serviceMap) throws Exception;

}
