/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW21401SFLogic
*   ソースファイル名：KKW21401SFLogic.java
*   作成者          ：富士通
*   日付            ：2015年11月24日
*＜機能概要＞
*   クレジットカード情報検索画面のビューロジックです。
*＜修正履歴＞
*   バージョン   修正日       修正者      修正内容
*   v20.00.00    2015/11/24   FJ）原田    新規作成
*   v20.00.01    2015/11/26   FJ）原田    【IT1-2015-0000133】
*　 v20.00.02    2015/11/29   FJ）原田    【IT1-2015-0000135】ページングの実現
*   v20.00.03    2015/12/01   FJ）原田    【IT1-2015-0000136】検索結果0件のエラーメッセージ
*   v23.00.00    2016/02/23   FJ) 原田    【OM-2016-0000495】再度画面を開いて検索するとエラー対応
**********************************************************************/
package eo.web.webview.KKW21401SF;

import java.util.HashMap;
import java.util.Hashtable;

import javax.servlet.http.HttpSession;

import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x33.X33CUtil;
import com.fujitsu.futurity.web.x33.beans.X33VViewJSPBean;

import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JCCFrameworkException;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW00128SF.KKW00128SFConst;
import eo.web.webview.KKW04201SF.KKW04201SFConst;
import eo.web.webview.KKW12701SF.KKW12701SFConst;
import eo.web.webview.KKW21401SF.KKW21401SFConst;
import eo.web.webview.KUW00101SF.KUW00101SFConst;
import eo.web.webview.common.JCCAuthorityCtrlStatus;
import eo.web.webview.common.JCCMessageCache;
import eo.web.webview.common.JCCScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKUScreenConst;
import eo.web.webview.mapping.KKSV0828_KKSV0828OPDBMapper;

/**
 * KKW21401のビューロジックです。<p>
 * <BR>
 * @author 富士通
 */
public class KKW21401SFLogic extends JCCWebBusinessLogic
{
	/** 	検索種別: カード預りID */
	private static final String SEARCH_SBT_AZUKARI_ID = "0" ;
	
	/**
	 * 初期表示処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean init() throws Exception
	{
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW21401);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW21401);
		
		return true;
	}
	
	/**
	 * 検索ボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean search() throws Exception
	{
		
		// ページリンク情報をセッションから削除
// IT1-2015-0000135 2015/11/29 MOD START
// 		JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_NAME_KKW21401 + "0PJP");
		JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_ID_KKW21401 + "0PJP");
// IT1-2015-0000135 2015/11/29 MOD END
		
		// 検索、ページリンク共通処理
		searchCommon();
		
		return true;
	}
	
	/**
	 * ページング処理
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean changePage() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// セッション情報取得
		HashMap<String, Object> searchInfo = JCCWebCommon.getScreenInfo(this);
		
		if(searchInfo != null)
		{
			String seachTyp = (String)bean.sendMessageString("検索種別", X31CWebConst.DATABEAN_GET_VALUE);
			if (seachTyp != null && !"".equals(seachTyp) && "1".equals(seachTyp))
			{
				bean.sendMessageString(KKW21401SFConst.SAVE_ID, X31CWebConst.DATABEAN_SET_VALUE, new String());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO1, X31CWebConst.DATABEAN_SET_VALUE
						, searchInfo.get(KKW21401SFConst.CREDIT_CARD_NO1).toString());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO2, X31CWebConst.DATABEAN_SET_VALUE
						, searchInfo.get(KKW21401SFConst.CREDIT_CARD_NO2).toString());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO3, X31CWebConst.DATABEAN_SET_VALUE
						, searchInfo.get(KKW21401SFConst.CREDIT_CARD_NO3).toString());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO4, X31CWebConst.DATABEAN_SET_VALUE
						, searchInfo.get(KKW21401SFConst.CREDIT_CARD_NO4).toString());

			}
			else if (seachTyp != null && !"".equals(seachTyp) && "0".equals(seachTyp))
			{
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO1, X31CWebConst.DATABEAN_SET_VALUE, new String());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO2, X31CWebConst.DATABEAN_SET_VALUE, new String());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO3, X31CWebConst.DATABEAN_SET_VALUE, new String());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO4, X31CWebConst.DATABEAN_SET_VALUE, new String());
				bean.sendMessageString(KKW21401SFConst.SAVE_ID, X31CWebConst.DATABEAN_SET_VALUE
						, searchInfo.get(KKW21401SFConst.SAVE_ID).toString());
			}
			else
			{
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO1, X31CWebConst.DATABEAN_SET_VALUE, new String());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO2, X31CWebConst.DATABEAN_SET_VALUE, new String());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO3, X31CWebConst.DATABEAN_SET_VALUE, new String());
				bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO4, X31CWebConst.DATABEAN_SET_VALUE, new String());
				bean.sendMessageString(KKW21401SFConst.SAVE_ID, X31CWebConst.DATABEAN_SET_VALUE
						, searchInfo.get(KKW21401SFConst.SAVE_ID).toString());
			}
		}
// IT1-2015-0000135 2015/11/29 MOD START
//		return search();
		// 検索、ページリンク共通処理
		searchCommon();
		
		return true;
// IT1-2015-0000135 2015/11/29 MOD END
	}
	
	/**
	 * クリアボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean clear() throws Exception
	{
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// DataBeanのクレジットカード情報一覧をクリア
		bean.getDataBeanArray(KKW21401SFConst.CARD_INFO_LIST).clearArray();
		
		// 前回検索したページリンク情報をセッションから削除
		JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_ID_KKW21401);
		
		// クレジットカード情報一覧を非表示にする
		bean.sendMessageBoolean(KKW21401SFConst.CREDITCARD_LIST_BFLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		
		// DataBean項目の値をクリアする。
		bean.sendMessageString(KKW21401SFConst.SEARCH_SBT, SEARCH_SBT_AZUKARI_ID);
		bean.sendMessageString(KKW21401SFConst.SAVE_ID, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO1, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO2, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO3, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO4, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW21401);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW21401);
		
		return true;
	}
	
	/**
	 * 検索、ページリンク共通処理
	 * <br>
	 * @return 
	 * @throws Exception エラーが発生した場合
	 */
	private void searchCommon() throws Exception
	{
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 検索条件を作成する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		X31SDataBeanAccess[] paramBean = { bean };
		
		String seachTyp = (String)paramBean[0].sendMessageString("検索種別", X31CWebConst.DATABEAN_GET_VALUE);
		if (seachTyp != null && !"".equals(seachTyp) && "1".equals(seachTyp))
		{
			paramBean[0].sendMessageString(KKW21401SFConst.SAVE_ID, X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
		else if (seachTyp != null && !"".equals(seachTyp) && "0".equals(seachTyp))
		{
			paramBean[0].sendMessageString(KKW21401SFConst.CREDIT_CARD_NO1, X31CWebConst.DATABEAN_SET_VALUE, new String());
			paramBean[0].sendMessageString(KKW21401SFConst.CREDIT_CARD_NO2, X31CWebConst.DATABEAN_SET_VALUE, new String());
			paramBean[0].sendMessageString(KKW21401SFConst.CREDIT_CARD_NO3, X31CWebConst.DATABEAN_SET_VALUE, new String());
			paramBean[0].sendMessageString(KKW21401SFConst.CREDIT_CARD_NO4, X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
		else
		{
			paramBean[0].sendMessageString(KKW21401SFConst.SAVE_ID, X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
		
// IT1-2015-0000135 2015/11/29 ADD START
		// セッションID取得
		HttpSession session = getSession(this);
		HashMap pageLinkInfoBaseMap = (HashMap)session.getAttribute( "pageLinkInfo");
		// キー：画面ID_表番号で紐付くページリンク情報オブジェクト
		HashMap targetPageLinkInfoMap = null;
		String nowPageNum = "1";
		// OM-2016-0000495 MOD START
		//if (pageLinkInfoBaseMap == null)
		if (pageLinkInfoBaseMap == null || pageLinkInfoBaseMap.isEmpty())
		// OM-2016-0000495 MOD END
		{
			nowPageNum = "1";
		}
		else {
			// キー：画面ID_表番号
			String screenKeyId = createPageInfoKey(JKKScreenConst.SCREEN_ID_KKW21401 + "0PJP","0");
			// メニューIDを取得
			String menuid = getMenuId(this);
			// メニューIDMAPを取得する。
			HashMap menuIdMap = (HashMap) pageLinkInfoBaseMap.get(menuid);
			// キー：画面ID_表番号で紐付くページリンク情報オブジェクトを取得する。
			targetPageLinkInfoMap = (HashMap) menuIdMap.get( screenKeyId );
			// 現在のページング情報
			if (targetPageLinkInfoMap == null)
			{
				nowPageNum = "1";
			}
			else
			{
				targetPageLinkInfoMap = (HashMap) menuIdMap.get( screenKeyId );
				nowPageNum = (String)targetPageLinkInfoMap.get("display_page_num");
			}

		}
// IT1-2015-0000135 2015/11/29 ADD END
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0828");
		KKSV0828_KKSV0828OPDBMapper mapper = new KKSV0828_KKSV0828OPDBMapper();
// IT1-2015-0000135 2015/11/29 MOD START
//		mapper.setKKSV082801CC(paramBean, inputMap, "1", getAuthority());
		mapper.setKKSV082801CC(paramBean, inputMap, "1", getAuthority(), nowPageNum);
// IT1-2015-0000135 2015/11/29 MOD END
		
		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "KKSV082801CC", inputMap);
		
		// サービスの呼び出し
		X31CMessageResult result = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理
		if(result != null)
		{
			JCCWebCommon.setMessageInfo(this, result);
			return;
		}
		// 結果コードの取得
		String resultCd = (String)((HashMap<String, Object>)outputMap.get("KKSV082801CC")).get("result_cd");
		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV082801CC", outputMap);
		// IT1-2015-0000136 ADD START
		Object totalSearchNum = ((HashMap<String, Object>)outputMap.get("KKSV082801CC")).get("total_search_num");
		// IT1-2015-0000136 ADD END

		// IT1-2015-0000136 DEL START
		//// 検索結果が0件の場合の処理		
		//if("999".equals(resultCd))
		//{
		//	// クレジットカード情報一覧を非表示にする
		//	bean.sendMessageBoolean(KKW21401SFConst.CREDITCARD_LIST_BFLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		//	
		//	// 検索結果が0件のエラーメッセージを表示する
		//	JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
		//	
		//	return;
		//}
		// IT1-2015-0000136 DEL END
		
		// 通信エラーチェック
		if("9000000".equals(searchErrFlg) || "9000000".equals(resultCd) || resultCd == null || "".equals(resultCd)){
			// クレジットカード情報一覧を非表示にする
			bean.sendMessageBoolean(KKW21401SFConst.CREDITCARD_LIST_BFLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			// 通信エラーメッセージを表示する
			String[] msg = {"照会先との接続エラー","照会"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE194_KW, msg);
			return;
		}
		
		// IT1-2015-0000136 ADD START
		// 検索結果が0件の場合の処理
		if("0".equals(String.valueOf(totalSearchNum)))
		{
			// クレジットカード情報一覧を非表示にする
			bean.sendMessageBoolean(KKW21401SFConst.CREDITCARD_LIST_BFLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			
			// 検索結果が0件のエラーメッセージを表示する
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			
			return;
		}
		// IT1-2015-0000136 ADD END
		else{
			// クレジットカード情報一覧を表示する
			bean.sendMessageBoolean(KKW21401SFConst.CREDITCARD_LIST_BFLG, X31CWebConst.DATABEAN_SET_VALUE, true);
			
		}
		JCCMessageCache.setMessageCache();
		// DataBeanのクレジットカード情報検索一覧をクリア
		bean.getDataBeanArray(KKW21401SFConst.CARD_INFO_LIST).clearArray();
		
		// サービス結果の転記
		mapper.getKKSV082801CC(paramBean, outputMap);
		
		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, "KKSV082801CC", outputMap);
		
		// 検索のコマンドIDを設定する
		JCCWebCommon.setSearchCommand(this, "B_CHANGE_PAGE");

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		
		// 引き継ぎ情報マップ
		HashMap<String, Object> hktgiMap001 = new HashMap<String, Object>();
		
		String searchSbt = bean.sendMessageString(KKW21401SFConst.SEARCH_SBT, X31CWebConst.DATABEAN_GET_VALUE);
		String cardNo1 = bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO1, X31CWebConst.DATABEAN_GET_VALUE);
		String cardNo2 = bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO2, X31CWebConst.DATABEAN_GET_VALUE);
		String cardNo3 = bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO3, X31CWebConst.DATABEAN_GET_VALUE);
		String cardNo4 = bean.sendMessageString(KKW21401SFConst.CREDIT_CARD_NO4, X31CWebConst.DATABEAN_GET_VALUE);
		String saveId= bean.sendMessageString(KKW21401SFConst.SAVE_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		hktgiMap001.put(KKW21401SFConst.SEARCH_SBT, searchSbt);
		hktgiMap001.put(KKW21401SFConst.CREDIT_CARD_NO1, cardNo1);
		hktgiMap001.put(KKW21401SFConst.CREDIT_CARD_NO2, cardNo2);
		hktgiMap001.put(KKW21401SFConst.CREDIT_CARD_NO3, cardNo3);
		hktgiMap001.put(KKW21401SFConst.CREDIT_CARD_NO4, cardNo4);
		hktgiMap001.put(KKW21401SFConst.SAVE_ID, saveId);
		
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW21401, hktgiMap001);
		
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW21401);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW21401);
		
		return;
	}
	
	private String getAuthority()
	{
		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 権限情報の取得
		JCCAuthorityCtrlStatus.setAuthorityCtrl(this);
		X31SDataBeanAccessArray authorityList = commoninfoBean.getDataBeanArray(CommonInfoCFConst.REQUEST_AUTHORITY_LIST);

		// (2) リクエスト権限リストが設定されていない場合
		if (authorityList == null || authorityList.getCount() == 0)
		{
			return "2";
		}
		
		// (3) リクエスト権限リストより、権限の取得を行なう。
		for (int i = 0; i < authorityList.getCount(); i++)
		{
			// 権限リストの取得
			X31SDataBeanAccess authorityBean = authorityList.getDataBean(i);

			// リクエスト権限リスト リクエスト権限
			String authorityValue = authorityBean.sendMessageString(CommonInfoCFConst.REQUEST_AUTHORITY_03, X31CWebConst.DATABEAN_GET_VALUE);

			// マスク対象のリクエスト権限リストではない場合
			if ("HOJIN".equals(authorityValue))
			{
				//【IT1-2015-0000133】 2015/11/26 FJ)原田 ADD START
				String flg = authorityBean.sendMessageString(CommonInfoCFConst.REQUEST_AUTHORITY_FLG_03, X31CWebConst.DATABEAN_GET_VALUE);
				if("0".equals(flg)) {
				//【IT1-2015-0000133】 2015/11/26 FJ)原田 ADD END
					return "1";
				//【IT1-2015-0000133】 2015/11/26 FJ)原田 ADD START
				}
				//【IT1-2015-0000133】 2015/11/26 FJ)原田 ADD END
			}
		}

		return "2";
	}
// IT1-2015-0000135 2015/11/29 ADD START
	/**
	 * セッションを取得します。
	 * 
	 * @param arg0 VIEWロジックインスタンス
	 */
	private static HttpSession getSession(JCCWebBusinessLogic arg0) throws Exception
	{
		// セッションID取得
		String sessionId = arg0.getSession().getViewParamId().getSessionID();
		// セッションを取得して返却
		return X33CUtil.getSession(sessionId).getSession();
	}
	private static String createPageInfoKey(String screenId, String tableIndex) {
		if (screenId == null || tableIndex == null) 
		{
			return null;
		}
		return getScreenIdWith0PJP(screenId) + "_" + tableIndex;
	}
	/**
	 * 指定された画面IDが"0PJP"で終わっていない場合、"0PJP"を付与して返却します。
	 * "0PJP"で終わっている場合、処理を行わず画面IDを返却します。
	 * @param screenId 画面ID
	 * @return 画面ID + "0PJP"
	 */
	private static String getScreenIdWith0PJP(String screenId) {
		if ( screenId == null ) {
			return null;
		}
		
		int ret = screenId.lastIndexOf("0PJP");
		if (ret == -1) {
			return screenId + "0PJP";
		} else {
			return screenId;
		}
	}
	
	/**
	 * メニューIDを取得する。
	 * @param arg0 VIEWロジックインスタンス
	 * @return メニューID
	 */
	private static String getMenuId( JCCWebBusinessLogic arg0 ) {
		try {
			X33VViewJSPBean jspBean = (X33VViewJSPBean) X33CUtil.getSession( arg0.getSession().getViewParamId().getSessionID() ).getContext().getRequestBean();
			String eventPageId = jspBean.getEventPageId();
			
			// アプリケーションプロパティファイルのメニュー画面ID定義を取得
			String menuScreenId = JCMAPLConstMgr.getString("MENU_SCREEN_ID");
			
			HashMap map = arg0.getRequestParams();
			if ( eventPageId != null && menuScreenId != null && eventPageId.equals(menuScreenId) ) {
				// 20121220 メニューIDの取得先変更（戻るボタンが効かない障害の対応） fst)yanagihara start
				return (String) map.get(JCCWebCommon.MENUID_PARAM_NAME);
				//return (String) map.get("uji.verb");
				// 20121220 メニューIDの取得先変更（戻るボタンが効かない障害の対応） fst)yanagihara end
			} else {
				return (String) map.get("menuid_system");
			}
		} catch(Throwable th)
		{
			throw makeJCCFrameworkException(th);
		}
	}
	
	/**
	 * オブジェクト生成処理です。
	 * Throwableオブジェクトをオブジェクトに保持して返却します。
	 * Throwableオブジェクトがオブジェクトの場合は、そのまま返却します。
	 * @param th Throwableオブジェクト
	 * @return JCCFrameworkExceptionオブジェクト
	 */
	private static JCCFrameworkException makeJCCFrameworkException(Throwable th)
	{	
		if (th instanceof JCCFrameworkException)
		{	
			return (JCCFrameworkException)th;
		}
		JCCFrameworkException fwe = new JCCFrameworkException();
		fwe.initCause(th);
		return fwe;
	}
// IT1-2015-0000135 2015/11/29 ADD END
}
