/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CKSV0063_CKSV0063OPDBMapper
*	ソースファイル名：CKSV0063_CKSV0063OPDBMapper.java
*	作成者			：FJ)藤本
*	日付			：2018年03月09日
*＜機能概要＞
*	BP（契約者情報変更(卸先事業者)OP）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v37.00.00	2018/03/09	FJ)藤本		【ANK-3366-00-00】eo光設備卸対応
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.HashMap;
import java.util.Map;

import eo.common.util.JKKStringUtil;
import eo.web.webview.common.JKKApiCommonUtil;

/**
 * DataBean-BPマッピングをします。
 * @author FJ
 * 
 */
public class CKSV0063_CKSV0063OPDBMapper
{
	/**
	 * コンストラクタ
	 */
	public CKSV0063_CKSV0063OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをします。
	 * <br>
	 * @param requestMap リクエストパラメータ(JSONデータ)
	 * @param outputMap 上りパラメータ
	 * @param funcCode 機能コード
	 */
	public void setCKSV006301CC(Map<String, Object> requestMap, HashMap<String, HashMap<String, Object>> outputMap, String funcCode)
	{
		if (requestMap == null)
		{
			return;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", funcCode);
		for (String commonHeader : JKKApiCommonUtil.COMMON_HEADER_JSON)
		{
			parentMap.put(commonHeader, (String)requestMap.get(commonHeader));
		}
		// 共通キー
		parentMap.put("commonKey", (String)requestMap.get("commonKey"));
		// 氏名
		setRequestParam(parentMap, requestMap, "name");
		// 氏名（カナ）
		setRequestParam(parentMap, requestMap, "nameKana");
		// 生年月日
		setRequestParam(parentMap, requestMap, "birthday");
		// 性別
		setRequestParam(parentMap, requestMap, "gender");
		// 契約者住所_郵便番号
		setRequestParam(parentMap, requestMap, "contractorAddressZipcode");
		// 契約者住所_都道府県名
		setRequestParam(parentMap, requestMap, "contractorAddress1");
		// 契約者住所_市区町村名
		setRequestParam(parentMap, requestMap, "contractorAddress2");
		// 契約者住所_大字通称名
		setRequestParam(parentMap, requestMap, "contractorAddress3");
		// 契約者住所_字丁目
		setRequestParam(parentMap, requestMap, "contractorAddress4");
		// 契約者住所_番地号
		setRequestParam(parentMap, requestMap, "contractorAddress5");
		// 契約者住所_建物名
		setRequestParam(parentMap, requestMap, "contractorAddress6");
		// 契約者住所_部屋番号
		setRequestParam(parentMap, requestMap, "contractorAddress7");
		// 契約者電話番号
		setRequestParam(parentMap, requestMap, "contractorPhoneNum");
		// 優先連絡先電話番号
		setRequestParam(parentMap, requestMap, "priorityPhoneNum");

		outputMap.put("CKSV006301CC", parentMap);
	}

	/**
	 * 下りマッピングをします。
	 * <br>
	 * @param responseMap レスポンスパラメータ
	 * @param outputMap 下りパラメータ
	 */
	public void getCKSV006301CC(Map<String, Object> responseMap, HashMap<String, HashMap<String, Object>> outputMap)
	{
		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey("CKSV006301CC"))
		{
			parentMap = outputMap.get("CKSV006301CC");
		}
		else
		{
			return;
		}

		// リターンコード ← 契約者情報変更(卸先事業者)マップ.リターンコード
		responseMap.put("returnCode", (String)parentMap.get("returnCode"));
		// リターンメッセージ ← 契約者情報変更(卸先事業者)マップ.リターンメッセージ
		responseMap.put("returnMessage", (String)parentMap.get("returnMessage"));
	}
	
	
	/**
	 * リクエストパラメータに存在している項目のみをマッピングします。
	 * <br>
	 * @param parentMap 上りパラメータ
	 * @param requestMap リクエストパラメータ(JSONデータ)
	 * @param paramNm パラメータ名
	 */
	private void setRequestParam(HashMap<String, Object> parentMap, Map<String, Object> requestMap, String paramNm)
	{
		if (requestMap.containsKey(paramNm))
		{
			// nullはフレームワークでSOAPメッセージの要素から除外されるため、""に変換する
			parentMap.put(paramNm, JKKStringUtil.nullToBlank((String)requestMap.get(paramNm)));
		}
	}

}
