/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JCRWebFileUtil
*	ソースファイル名：JCRWebFileUtil.java
*	作成者			：富士通
*	日付			：2011年08月25日
*＜機能概要＞
*	顧客対応履歴管理 Webファイル共通処理部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/25	富士通		新規作成
*
**********************************************************************/

package eo.web.webview.common;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
import com.fujitsu.futurity.web.x33.X33SException;

public class JCRWebFileUtil {
	
	/** 空文チェック用の定数 */
	static final String CHKNULL = "";

	/**
	 * アップロードファイルチェック処理.<br>
	 * アップロードファイルのチェックを行う。
	 * 
	 * @param webBusinessLogic ビジネスロジック
	 * @param fileInfoArray アップロードファイル情報
	 * @param objName オブジェクト名
	 * @return boolean
	 * @throws Exception 
	 */
	public static  boolean dispFileErrMsg(X31BWebBusinessLogic webBusinessLogic, ArrayList<HashMap<String, Object>> fileInfoArray, String objName) throws Exception
	{
		String errCode = null;
		String[] replaceValue = null;
		// アプリケーションプロパティファイルのパスを設定
		JCCUploadRestrictionCache.setPath();
		
		HashMap<String, Object> fileInfoMap = fileInfoArray.get(0);
		
		// アップロード共通チェック
		String resultCode = (String)fileInfoMap.get("resultCode");
		
		// ファイルが存在しない場合
		if ("FILE_NOT_EXIST".equals(resultCode))
		{
			// %1%が存在しません。
			errCode = "EKB0740-KW";
			replaceValue = new String[] {(String)fileInfoMap.get("fileName")};
		}
		// ファイルサイズが0の場合
		else if ("FILE_SIZE_ZERO".equals(resultCode))
		{
			// 指定されたファイルにデータが存在しません。
			errCode = "EKB0750-KW";
			replaceValue = new String[] {""};
		}
		// ファイルサイズがオーバーしている場合
		else if ("FILE_SIZE_NG".equals(resultCode))
		{
	
			try
			{
				String keyProperties = "FILEUPLOAD_DEFAULT_SIZE";

				String zenSize = JCCUploadRestrictionCache.getValue(keyProperties);

				// アップロードファイルサイズ個別制限値の取得
				
				// 設定値が無い場合はデフォルトの制限値5Mとする
				if(zenSize == null || CHKNULL.equals(zenSize) == true)
				{
					zenSize = "5";
				}
				// 添付しようとしたファイルのサイズが大き過ぎます。添付ファイルの上限設定は%1%までです。
				errCode = "EKB2120-KW";
				replaceValue = new String[] { zenSize + "MB"};
			}
			// ファイル情報の読出しに失敗した場合
			catch(X33SException x33)
			{
				return false;
			}
			
		}
		// ファイル情報が読み込めない場合
		else if ("FILE_INFO_READ_ERROR".equals(resultCode))
		{
			// ファイルを読込む事ができませんでした。ファイル内容を確認してください。
			errCode = "EKB0680-KW";
		}
		// 拡張子エラーが発生した場合
		else if ("FILE_EXTENSION_ERROR".equals(resultCode))
		{
			// %1%が%2%の為、%3%できません。
			errCode = "EKB1040-JW";
			replaceValue = new String[] {"指定されたファイル", "禁止の拡張子", "アップロード"};
		}
		// プロパティファイルの読込で異常が発生した場合
		else if ("PROPERTY_READ_ERROR".equals(resultCode))
		{
			// %1%が%2%の為、%3%できません。
			errCode = "EKB1040-JW";
			replaceValue = new String[] {"プロパティファイル", "未設定", "アップロード"};
		}

		// エラーが発生した場合
		if (!"FILE_INFO_OK".equals(resultCode))
		{
			JCCWebCommon.setMessageInfo(webBusinessLogic, errCode, replaceValue, objName);
			return false;
		}
		
		return true;
	}

}
