/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCCToolTextDateFormat
*   ソースファイル名：JCCToolTextDateFormat.java
*   作成者          ：富士通
*   日付            ：2011年06月13日
*＜機能概要＞
*  日付文字列のフォーマット処理を行います。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v5.00.00    2014/01/08   FJ          ログ出力レベルを変更
*
**********************************************************************/
package eo.common.util;

import java.text.ParseException;

import com.fujitsu.futurity.common.JSYwebLog;

/**
 * tool:textタグのdateformat,parseformat処理用のクラス
 * @author 富士通
 *
 */
public class JCCToolTextDateFormat
{
	/**
	 * 表示用フォーマット格納用変数
	 */
	private String dateFormat;
	/**
	 * 解析用フォーマット格納用変数
	 */
	private String parseFormat;
	
	/**
	 * コンストラクタ
	 * @param df 表示用フォーマット
	 * @param pf 解析用フォーマット
	 */
	public JCCToolTextDateFormat(final String df, final String pf)
	{
		this.dateFormat = df;
		this.parseFormat = pf;
	}
	
	/**
	 * 表示用フォーマットdateFormatと解析用フォーマットparseFormatを元に
	 * 引数の値に対応するフォーマットされた文字列を返却する。
	 * @param data 表示対象のデータ
	 * @return フォーマットされたデータ（値がnull,"",解析不能な場合、""(空文字)を返却する。）
	 */
	public String formattedPrint(final String data)
	{
		if (data == null || "".endsWith(data))
		{
			return "";
		}
		
		try {
			// 20130521 FST)Yanagihara オールゼロは空文字を返却 start
			if(data.matches("[0-0]*"))
			{
				return "";
			}
			// 20130521 FST)Yanagihara オールゼロは空文字を返却 end
			return new java.text.SimpleDateFormat(dateFormat).format(
						new java.text.SimpleDateFormat(parseFormat, java.util.Locale.US).parse(data));
		} catch (ParseException e) {
			// 2014/01/08 ログ出力レベルをデバッグに変更
			JSYwebLog.println(JSYwebLog.EXECUTION, getClass(), null, "BPX210D005", new String[]{"JCCToolTextDateFormat 日付解析", "( " + data + " -> " + parseFormat + " )"}, null);
			JSYwebLog.println(JSYwebLog.DEBUG, getClass(), e, null, null, null);
			return "";
		}
	}

}
