/********************************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：JFUBatCommon
 *	ソースファイル名：JFUBatCommon.java
 *	作成者			：富士通
 *	日付			：2011年04月07日
 *＜機能概要＞
 *	フロントの共通部品アクセッサー部品です。(バッチ用)
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/04/07	富士通		新規作成
 *	v17.00		2015/09/18	FJ)岡井		【ANK-2480-00-00】新電力対応(Step1-2)
 *
 ********************************************************************************/
package eo.business.common;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.HashMap;

import eo.common.util.JCCGetMailHeaderUtil;
import eo.common.util.JZMAdOutputEdit;

/**
 * フロントの共通部品アクセッサー部品です。
 * バッチ共通部品へのアクセスも本アクセッサーを使用して下さい。<p>
 * <br>
 * @author 富士通
 */
public class JFUBatCommon extends JCCBatCommon
{
	
	/**
	 * 文字列のNULLおよび空文字チェックを行います。
	 * <br>
	 * @param value チェック対象の文字列
	 * @return 文字列に値が格納されている場合はtrue、格納されていない場合はfalse
	 */
	public static boolean isNotNullCheck(String value)
	{
		return JCNBatCheckUtil.isNotNullCheck(value);
	}
	
	/**
	 * postFixで生成されたメールヘッダー情報をString[]からHashMapへ変換します。
	 * <br>
	 * @param argList メールヘッダー情報
	 * @return メールヘッダー情報変換Map
	 * @throws 処理中で発生したエラーをスロー
	 */
	@SuppressWarnings("unchecked")
	public static HashMap getMailHeaderPostFix(String[] argList) 
	{
		return JCCGetMailHeaderUtil.getMailHeaderPostFix(argList);
	}
	
	/**
	 * 住所編集部品(パターン12)の呼び出しを行います。
	 * <br>
	 * @param bnchigo 番地号
	 * @return 住所情報(番地号を15文字ずつ3分割して出力する。
	 * @throws 処理中で発生したエラーをスロー
	 */
	public static String[] jyusyoEditPtn12(String bnchigo) throws Exception
	{
		return JZMAdOutputEdit.getPtn12(bnchigo);
	}
	
	/**
	 * 文字列を日付形式に変換して判定を行います。
	 * <br>
	 * @param str チェック対象の日時文字列
	 * @return 日付オブジェクトに変換可能な場合はtrue、変換不可の場合はfalse
	 */
	public static boolean isDateFormat(String str)
	{
		return JCNBatCheckUtil.isDateFormat(str);
	}
	
	/**
	 * 先頭からゼロパディングします。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でゼロパディング対象文字列、桁数を設定します。<br>
	 *
	 * 2.引数を元に指定桁数にてゼロパディングを行います。<br>
	 * 
	 * </pre>
	 * <p>
	 * @param  strInData    変換対象金額。
	 * @param  iCnt    ゼロパディング桁数。
	 * @return strOutData   変換後金額。
	 * @throws Exception    業務サービス内で発生した例外全般。
	 */
	public static String strZeroPad(String strInData, int iCnt) throws Exception
	{
		return JCNBatStringUtil.strZeroPad(strInData, iCnt);
	}

	/**
	 * 日付オブジェクトを指定された形式の文字列に編集します。
	 * <br>
	 * @param arg0 編集する日付オブジェクト
	 * @param arg1 java.util.Date型の日付書式(yyyyMMddなど)
	 * @param arg2 編集する文字列の日付書式
	 * @return String 指定された形式に編集された文字列
	 */
	public static String toFormatDate(String arg0, String arg1, String arg2) 
	{
		try
		{
			SimpleDateFormat instance = new SimpleDateFormat(arg1);

			return new SimpleDateFormat(arg2).format(instance.parse(arg0));

		}
		catch (ParseException pe) 
		{
			return arg0;
		}
	}

}
