/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKUBatHashMapUtil
*   ソースファイル名：JKUBatHashMapUtil.java
*   作成者          ：富士通
*   日付            ：2011年05月10日
*＜機能概要＞
*   HashMap操作を行う共通機能を提供する。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/05/10   FJ) 富士通  新規作成
*
**********************************************************************/
package eo.business.common;

import java.util.HashMap;
import java.util.Iterator;

/**
 * 文字列編集を行う共通処理を行うクラスです。<p>
 * <BR>
 * @author 富士通
 */
public class JKUBatHashMapUtil extends JCCBatCommon
{

	/**
	 * ダブルクォーテーション囲みを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で囲み対象文字を設定します。<br>
	 * </pre>
	 * <p>
	 * @param strTarget     囲み対象文字
	 * @return strRec       文字列連結結果を返却します。
	 */
	public static String encloseDQuot(String strTarget)
	{
		if (null == strTarget)
		{
			return "\"\"";
		}
		return "\"" + strTarget + "\"";
	}

	/**
	 * 指定されたHashMapの値からダブルクォーテーション囲みを削除します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数のHashMapの件数分ダブルクォーテーション囲みを削除します。<br>
	 * 
	 * </pre>
	 * <p>
	 * @param map    入力ファイルの１レコードが格納されているMap
	 * @return HashMap 括り文字を削除した値が格納されているMap
	 */
	public static HashMap deleteDblQuote(HashMap map)
	{
		
		HashMap henkanMap = new HashMap(map.size());
		Iterator iterator = map.keySet().iterator();
		String s = "";

		int len = 0;
		final String KKR_MOJI = "\"";
		
		// mapの件数分繰り返す
		while (iterator.hasNext()) 
		{
			// キーの取得
			String key = (String)iterator.next();

			s = (String)map.get(key);
			len = s.length();
			
			// 括り文字が片方のみしか存在しない場合は処理しない
			if (1 < len)
			{
				// 括り文字で囲まれている場合、括り文字を削除する
				if (KKR_MOJI.equals(s.substring(0, 1)) && KKR_MOJI.equals(s.substring(len - 1, len)))
				{
					s = s.substring(1, len - 1);
				}
			}
			// 変換後の値を設定する
			henkanMap.put(key, s);
		}
		
		return henkanMap;
	}
	
	/**
	 * 指定されたHashMapの値にダブルクォーテーション囲みを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数のHashMapの件数分ダブルクォーテーション囲みを行います。<br>
	 * 
	 * </pre>
	 * <p>
	 * @param map    出力ファイルの１レコードが格納されているHashMap
	 * @return HashMap 括り文字を付与した値が格納されているHashMap
	 */
	public static HashMap addDblQuote(HashMap map)
	{
		
		HashMap henkanMap = new HashMap(map.size());
		Iterator iterator = map.keySet().iterator();
		String s = null;
		Object obj = null;
		
		// mapの件数分繰り返す
		while (iterator.hasNext()) 
		{
			// キーの取得
			String key = (String)iterator.next();
			
			obj = map.get(key);
			
			if (obj != null)
			{
				s = obj.toString();
			}
			else
			{
				s = "";
			}
//			s = encloseDQuot(map.get(key).toString());
			s = encloseDQuot(s);

			// 変換後の値を設定する
			henkanMap.put(key, s);
		}
		
		return henkanMap;
		
	}
}
