/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCRBPCommon
*   ソースファイル名：JCRBPCommon.java
*   作成者          ：富士通
*   日付            ：2011年07月14日
*＜機能概要＞
*   ＢＰ共通アクセッサー部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/07/14   富士通    新規作成
*
**********************************************************************/

package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.custom.common.JPCBPCommon;



/**
 * ＢＰ共通アクセッサー部品です。<p>
 * サービスで実装します。<p>
 * <BR>
 * @author 富士通
 */
public class JCHBPCommon extends JCCBPCommon
{

	/**
	 * <p>
	 * サービスの明細項目から値を取得し、String型で返却します。
	 * </p>
	 * @param param リクエストパラメータ
	 * @param scName 取得対象のSC名
	 * @param listName 取得対象のリスト名
	 * @param index 取得対象の明細番号
	 * @param itemName 取得対象の項目名
	 * @return 取得された値
	 * @throws RequestParameterException RequestParameter用例外クラス 
	 */
	public static String getBPListValueString(IRequestParameterReadOnly param, String scName, String listName, Integer index, String itemName) 
	throws RequestParameterException
	{
		String value = null;

		try
		{
			value = (String)JPCBPCommon.getBPListValueString(param, scName, listName, index, itemName);
			if ("".equals(value))
			{
				return null;
			}
		}
		catch (NullPointerException ex)
		{
			return null;
		}

		return value;
	}

	/**
	 * <p>
	 * サービスの項目から値を取得し、String型で返却します。
	 * </p>
	 * @param param リクエストパラメータ
	 * @param scName 取得対象のSC名
	 * @param itemName 取得対象の項目名
	 * @return 取得された値
	 * @throws RequestParameterException RequestParameter用例外クラス 
	 */
	public static String getBPItemValueString(IRequestParameterReadOnly param, String scName, String itemName) 
	throws RequestParameterException
	{
		HashMap<Object, Object> dataMap = null;
		String value = null;

		try
		{
			dataMap = (HashMap<Object, Object>)param.getData(scName);
			// 判定
			if(dataMap.get(itemName) != null && !"".equals(dataMap.get(itemName)))
			{
				return dataMap.get(itemName).toString();
			}
		}
		catch (NullPointerException ex)
		{
			return null;
		}

		return value;
	}

	/**
	 * <p>
	 * サービスからリストを取得し返却します。
	 * </p>
	 * @param param リクエストパラメータ
	 * @param scName 取得対象のSC名
	 * @param listName 取得対象の項目名
	 * @return 取得された値
	 * @throws RequestParameterException RequestParameter用例外クラス 
	 */
	public static ArrayList<HashMap<String, Object>> getBPItemList(IRequestParameterReadOnly param, String scName, String listName) 
	throws RequestParameterException
	{
		HashMap<Object, Object> dataMap = null;
		ArrayList<HashMap<String, Object>> inList = null;

		try
		{
			dataMap = (HashMap<Object, Object>)param.getData(scName);
			inList = (ArrayList<HashMap<String, Object>>)dataMap.get(listName);
		}
		catch (NullPointerException ex)
		{
			return null;
		}

		return inList;
	}
}
