/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCCAuthorityCheck
*   ソースファイル名：JCCAuthorityCheck.java
*   作成者          ：富士通
*   日付            ：2012年02月20日
*＜機能概要＞
*   バックヤード共通ヘッダのタグハンドラクラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/02/20   富士通      新規作成
*
**********************************************************************/

package eo.web.webview.common;

import javax.servlet.jsp.JspException;

import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.web.x33.X33VCustomTagBase;

/**
 * 権限チェックのタグハンドラクラス
 * <br>
 * @author 富士通
 *
 */
@SuppressWarnings("serial")
public class JCCAuthorityCheck extends X33VCustomTagBase {
	
	/**  メッセージリストのテンプレートID */
	public static final String TEMPLATE_ID = "TagTemplate001";
	
	/** リクエスト権限リストのリクエスト権限の項目ID */
	public static final String REQUEST_AUTHORITY = "REQUEST_AUTHORITY";
	
	/** リクエスト権限リストのリクエスト権限フラグの項目ID */
	public static final String REQUEST_AUTHORITY_FLG = "REQUEST_AUTHORITY_FLG";
	
	/** アプリケーションプロパティファイルのキー（マスキングの文字列） */
	public static final String AUTHORITY_MASKING_ITEM = "AUTHORITY_MASKING_ITEM";
	
	/** 拡張タグイベントID */
	private String _eventId;
	
	/** 拡張タグイベント番号 */
	private String _eventNum;
	
	/** 拡張タグデータ */
	private String _data;
	
	public void setEventId( String eventId ) {
		_eventId = eventId;
	}
	
	public void setEventNum( String eventNum ) {
		_eventNum = eventNum;
	}
	
	public void setData( String data ) {
		_data = data;
	}
	
	/**
	 * バックヤード共通ヘッダの出力処理を行う。
	 * <br>
	 * @return SKIP_BODY バックヤード共通ヘッダの拡張タグは空タグの為、ボディー部をスキップする。
	 * @throws JspException JSPエラー。
	 */
	@Override
	public int doStartTag() throws JspException
	{
		
		// リクエスト権限リストの個数取得
		int count = countSFBeanList(TEMPLATE_ID, REQUEST_AUTHORITY);
		
		// リクエスト権限リストが0件の場合は、マスク文字列を設定する
		if(count == 0)
		{
			outputHtml(JCMAPLConstMgr.getString(AUTHORITY_MASKING_ITEM));
			return SKIP_BODY;
		}
		// リクエスト権限の取得
		String requestAuthority = getSFBeanData_String(TEMPLATE_ID, REQUEST_AUTHORITY, Integer.parseInt(_eventNum));
		// リクエスト権限フラグの取得
		String requestAuthorityFlg = getSFBeanData_String(TEMPLATE_ID, REQUEST_AUTHORITY_FLG, Integer.parseInt(_eventNum));
		
		// イベントIDとリクエスト権限が等しい、かつ、イベント番号とリクエスト権限リストが等しい場合、項目値を設定する
		if(_eventId.equals(requestAuthority) && _eventNum.equals(requestAuthorityFlg))
		{
			outputHtml(_data);
		}
		// 上記以外はマスク文字列を設定する
		else
		{
			outputHtml(JCMAPLConstMgr.getString(AUTHORITY_MASKING_ITEM));
		}
		
		return SKIP_BODY;
	}

}
