/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：サービス制御
*	モジュール名	：SCSV0017_SCSV0017OPDBMapper
*	ソースファイル名：SCSV0017_SCSV0017OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年08月17日
*＜機能概要＞
*	BP（モバイルオーダ受付初期表示）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/17	FJ		新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JSCStrConstant;
import eo.common.constant.JZM0171Constant;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class SCSV0017_SCSV0017OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public SCSV0017_SCSV0017OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSCSV001701SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// モバイルオーダコード → コード名称管理一覧マップ（モバイルオーダコード）.ＫＥＹ＿コード種別コード１
		parentMap.put("key_cd_sbt_cd1", JZM0171Constant.CD00312);

		outputMap.put("SCSV001701SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSCSV001702SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 要求元アプリ種別コード → コード名称管理一覧マップ（要求元アプリ種別コード）.ＫＥＹ＿コード種別コード２
		parentMap.put("key_cd_sbt_cd2", JZM0171Constant.CD00329);

		outputMap.put("SCSV001702SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSCSV001703SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 要求種別コード → コード名称管理一覧マップ（要求種別コード）.ＫＥＹ＿コード種別コード３
		parentMap.put("key_cd_sbt_cd3", JZM0171Constant.CD00317);

		outputMap.put("SCSV001703SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSCSV001704SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＵＱＲＯＭ種別コード → コード名称管理一覧マップ（ROM種別コード）.ＫＥＹ＿コード種別コード４
		parentMap.put("key_cd_sbt_cd4", JZM0171Constant.CD00323);

		outputMap.put("SCSV001704SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSCSV001705SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 旧ＳＰＯＴ＿セッション数 → コード名称管理一覧マップ（ＳＯＤ項目変更有無コード）.ＫＥＹ＿コード種別コード５
		parentMap.put("key_cd_sbt_cd5", JZM0171Constant.CD00316);

		outputMap.put("SCSV001705SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getSCSV001701SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("SCSV001701SC")){
			parentMap = (HashMap)outputMap.get("SCSV001701SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listSCSV001701SC_i_order_sbt_list_EZM0171B010CBSMsg1List = bean[0].getDataBeanArray("オーダ種別リスト");
		childList = null;
		if(parentMap.containsKey("EZM0171B010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B010CBSMsg1List");
			X31SDataBeanAccess subbean = listSCSV001701SC_i_order_sbt_list_EZM0171B010CBSMsg1List.getDataBean(0);
			if(subbean == null){
				subbean = listSCSV001701SC_i_order_sbt_list_EZM0171B010CBSMsg1List.addDataBean();
			}

			subbean.sendMessage("オーダ種別値リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("オーダ種別名リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("オーダ種別表示用リスト", X31CWebConst.DATABEAN_CLEAR);

			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
				
				String cd_div = (String)childMap.get("cd_div1");
				String cd_nm = (String)childMap.get("cd_div_nm1");

				if (cd_div.equals(JSCStrConstant.MOBILE_ODER_CD_CUI)){
					// オーダ種別リスト.オーダ種別値リスト ← コード名称管理一覧マップ（モバイルオーダコード）.コード名称管理一覧明細１.コード区分１
					subbean.sendMessageString("オーダ種別値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div1"));
					// オーダ種別リスト.オーダ種別名リスト ← コード名称管理一覧マップ（モバイルオーダコード）.コード名称管理一覧明細１.コード区分名１
					subbean.sendMessageString("オーダ種別名リスト", X31CWebConst.DATABEAN_ADD_VALUE, "1.UQ(CUI)");
					// オーダ種別リスト.オーダ種別表示用リスト ← [コード区分１]コード区分名１
					subbean.sendMessageString("オーダ種別表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE,
							"[" + (String)childMap.get("cd_div1") + "]UQ(CUI)");
				} else if (cd_div.equals(JSCStrConstant.MOBILE_ODER_CD_DEV)){
					// オーダ種別リスト.オーダ種別値リスト ← コード名称管理一覧マップ（モバイルオーダコード）.コード名称管理一覧明細１.コード区分１
					subbean.sendMessageString("オーダ種別値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div1"));
					// オーダ種別リスト.オーダ種別名リスト ← コード名称管理一覧マップ（モバイルオーダコード）.コード名称管理一覧明細１.コード区分名１
					subbean.sendMessageString("オーダ種別名リスト", X31CWebConst.DATABEAN_ADD_VALUE, "2.UQ(DEV)");
					// オーダ種別リスト.オーダ種別表示用リスト ← [コード区分１]コード区分名１
					subbean.sendMessageString("オーダ種別表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE,
							"[" + (String)childMap.get("cd_div1") + "]UQ(DEV)");
				} else if (cd_div.equals(JSCStrConstant.MOBILE_ODER_CD_SPOT)){
					// オーダ種別リスト.オーダ種別値リスト ← コード名称管理一覧マップ（モバイルオーダコード）.コード名称管理一覧明細１.コード区分１
					subbean.sendMessageString("オーダ種別値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div1"));
					// オーダ種別リスト.オーダ種別名リスト ← コード名称管理一覧マップ（モバイルオーダコード）.コード名称管理一覧明細１.コード区分名１
					subbean.sendMessageString("オーダ種別名リスト", X31CWebConst.DATABEAN_ADD_VALUE, "3.SPOT");
					// オーダ種別リスト.オーダ種別表示用リスト ← [コード区分１]コード区分名１
					subbean.sendMessageString("オーダ種別表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE,
							"[" + (String)childMap.get("cd_div1") + "]SPOT");
				}
			}
		}
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getSCSV001702SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("SCSV001702SC")){
			parentMap = (HashMap)outputMap.get("SCSV001702SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listSCSV001702SC_i_yokyu_mt_apl_sbt_cd_list_EZM0171B010CBSMsg2List = bean[0].getDataBeanArray("要求元アプリ種別リスト");
		childList = null;
		if(parentMap.containsKey("EZM0171B010CBSMsg2List")){
			childList = (ArrayList)parentMap.get("EZM0171B010CBSMsg2List");

			X31SDataBeanAccess subbean = listSCSV001702SC_i_yokyu_mt_apl_sbt_cd_list_EZM0171B010CBSMsg2List.getDataBean(0);
			if(subbean == null){
				subbean = listSCSV001702SC_i_yokyu_mt_apl_sbt_cd_list_EZM0171B010CBSMsg2List.addDataBean();
			}

			subbean.sendMessage("要求元アプリ種別値リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("要求元アプリ種別名リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("要求元アプリ種別表示用リスト", X31CWebConst.DATABEAN_CLEAR);
			
			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
				// 要求元アプリ種別リスト.要求元アプリ種別値リスト ← コード名称管理一覧マップ（要求元アプリ種別コード）.コード名称管理一覧明細２.コード区分２
				subbean.sendMessageString("要求元アプリ種別値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div2"));
				// 要求元アプリ種別リスト.要求元アプリ種別名リスト ← コード名称管理一覧マップ（要求元アプリ種別コード）.コード名称管理一覧明細２.コード区分名２
				subbean.sendMessageString("要求元アプリ種別名リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm2"));
				// 要求元アプリ種別リスト.要求元アプリ種別表示用リスト ← [コード区分２]コード区分名２
				subbean.sendMessageString("要求元アプリ種別表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE,
						"[" + (String)childMap.get("cd_div2") + "]" + (String)childMap.get("cd_div_nm2"));
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getSCSV001703SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("SCSV001703SC")){
			parentMap = (HashMap)outputMap.get("SCSV001703SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listSCSV001703SC_i_yokyu_sbt_cd_list_EZM0171B010CBSMsg3List = bean[0].getDataBeanArray("要求種別リスト");
		childList = null;
		if(parentMap.containsKey("EZM0171B010CBSMsg3List")){
			childList = (ArrayList)parentMap.get("EZM0171B010CBSMsg3List");
			X31SDataBeanAccess subbean = listSCSV001703SC_i_yokyu_sbt_cd_list_EZM0171B010CBSMsg3List.getDataBean(0);
			if(subbean == null){
				subbean = listSCSV001703SC_i_yokyu_sbt_cd_list_EZM0171B010CBSMsg3List.addDataBean();
			}

			subbean.sendMessage("要求種別値リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("要求種別名リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("要求種別表示用リスト", X31CWebConst.DATABEAN_CLEAR);
			
			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
				// 要求種別リスト.要求種別値リスト ← コード名称管理一覧マップ（要求種別コード）.コード名称管理一覧明細３.コード区分３
				subbean.sendMessageString("要求種別値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div3"));
				// 要求種別リスト.要求種別名リスト ← コード名称管理一覧マップ（要求種別コード）.コード名称管理一覧明細３.コード区分名３
				subbean.sendMessageString("要求種別名リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm3"));
				// 要求種別リスト.要求種別表示用リスト ← [コード区分名３]コード区分名３
				subbean.sendMessageString("要求種別表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE,
						"[" + (String)childMap.get("cd_div3") + "]" + (String)childMap.get("cd_div_nm3"));
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getSCSV001704SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("SCSV001704SC")){
			parentMap = (HashMap)outputMap.get("SCSV001704SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listSCSV001704SC_i_rom_sbt_cd_list_EZM0171B010CBSMsg4List = bean[0].getDataBeanArray("ＲＯＭ種別リスト");
		childList = null;
		if(parentMap.containsKey("EZM0171B010CBSMsg4List")){
			childList = (ArrayList)parentMap.get("EZM0171B010CBSMsg4List");
			X31SDataBeanAccess subbean = listSCSV001704SC_i_rom_sbt_cd_list_EZM0171B010CBSMsg4List.getDataBean(0);
			if(subbean == null){
				subbean = listSCSV001704SC_i_rom_sbt_cd_list_EZM0171B010CBSMsg4List.addDataBean();
			}

			subbean.sendMessage("ＲＯＭ種別値リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("ＲＯＭ種別名リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("ＲＯＭ種別表示用リスト", X31CWebConst.DATABEAN_CLEAR);
			
			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
			
				// ＲＯＭ種別リスト.ＲＯＭ種別値リスト ← コード名称管理一覧マップ（ROM種別コード）.コード名称管理一覧明細４.コード区分４
				subbean.sendMessageString("ＲＯＭ種別値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div4"));
				// ＲＯＭ種別リスト.ＲＯＭ種別名リスト ← コード名称管理一覧マップ（ROM種別コード）.コード名称管理一覧明細４.コード区分名４
				subbean.sendMessageString("ＲＯＭ種別名リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm4"));
				// ＲＯＭ種別リスト.ＲＯＭ種別表示用リスト ← [コード区分４]コード区分名４
				subbean.sendMessageString("ＲＯＭ種別表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE,
						"[" + (String)childMap.get("cd_div4") + "]" +  (String)childMap.get("cd_div_nm4"));
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：モバイルオーダ受付
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getSCSV001705SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("SCSV001705SC")){
			parentMap = (HashMap)outputMap.get("SCSV001705SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listSCSV001705SC_i_spot_session_cnt_chgum_EZM0171B010CBSMsg5List = bean[0].getDataBeanArray("ＳＯＤ項目変更有無");
		childList = null;
		if(parentMap.containsKey("EZM0171B010CBSMsg5List")){
			childList = (ArrayList)parentMap.get("EZM0171B010CBSMsg5List");
			X31SDataBeanAccess subbean = listSCSV001705SC_i_spot_session_cnt_chgum_EZM0171B010CBSMsg5List.getDataBean(0);
			if(subbean == null){
				subbean = listSCSV001705SC_i_spot_session_cnt_chgum_EZM0171B010CBSMsg5List.addDataBean();
			}

			subbean.sendMessage("ＳＯＤ項目変更有無値リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("ＳＯＤ項目変更有無名リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("ＳＯＤ項目変更有無表示用リスト", X31CWebConst.DATABEAN_CLEAR);
			
			subbean.sendMessageString("ＳＯＤ項目変更有無値リスト", X31CWebConst.DATABEAN_ADD_VALUE, "0");
			subbean.sendMessageString("ＳＯＤ項目変更有無名リスト", X31CWebConst.DATABEAN_ADD_VALUE, "変更なし");
			subbean.sendMessageString("ＳＯＤ項目変更有無表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE, "(変更なし)");

			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
			
				// ＳＯＤ項目変更有無.ＳＯＤ項目変更有無値リスト ← コード名称管理一覧マップ（ＳＯＤ項目変更有無コード）.コード名称管理一覧明細５.コード区分５
				subbean.sendMessageString("ＳＯＤ項目変更有無値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div5"));
				// ＳＯＤ項目変更有無.ＳＯＤ項目変更有無名リスト ← コード名称管理一覧マップ（ＳＯＤ項目変更有無コード）.コード名称管理一覧明細５.コード区分名５
				subbean.sendMessageString("ＳＯＤ項目変更有無名リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm5"));
				// ＳＯＤ項目変更有無.ＳＯＤ項目変更有無表示用 ← (コード区分名５)
				subbean.sendMessageString("ＳＯＤ項目変更有無表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE,
						"(" + (String)childMap.get("cd_div_nm5") + ")");
			}
		}


		return bean;
	}


}