/********************************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：JCNBatCommon
 *	ソースファイル名：JCNBatCommon.java
 *	作成者			：富士通
 *	日付			：2011年04月07日
 *＜機能概要＞
 *	コンテンツ決済用の共通部品アクセッサー部品です。(バッチ用)
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/04/07	富士通		新規作成
 *
 ********************************************************************************/
package eo.business.common;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;

/**
 * コンテンツ決済用の共通部品アクセッサー部品です。
 * バッチ共通部品へのアクセスも本アクセッサーを使用して下さい。<p>
 * <br>
 * @author 富士通
 */
public class JCNBatCommon extends JCCBatCommon
{
	
	/**
	 * CCMGより受信するファイルの形式チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でチェック対象のファイルレコードリストを設定します。<br>
	 *
	 * 2.引数をチェックした結果を返却します。<br>
	 * 
	 * </pre>
	 * <p>
	 * @param sCheckList    チェック対象リスト。
	 * @return String       エラーコード
	 * @throws Exception    業務サービス内で発生した例外全般。
	 */
	public static String checkFileRec(ArrayList<String> sCheckList) throws Exception
	{
		return JCNBatCheckUtil.checkFileRec(sCheckList);
	}
	
	/**
	 * 文字列を日付形式に変換して判定を行います。
	 * <br>
	 * @param str チェック対象の日時文字列
	 * @return 日付オブジェクトに変換可能な場合はtrue、変換不可の場合はfalse
	 */
	public static boolean isDateFormat(String str)
	{
		return JCNBatCheckUtil.isDateFormat(str);
	}
	
	/**
	 * 文字列を日付形式(時分秒)に変換して判定を行います。
	 * <br>
	 * @param str チェック対象の時分秒文字列
	 * @return 日付オブジェクトに変換可能な場合はtrue、変換不可の場合はfalse
	 */
	public static boolean isDateFormatHms(String str)
	{
		return JCNBatCheckUtil.isDateFormatHms(str);
	}
	
	/**
	 * 文字列のNULLおよび空文字チェックを行います。
	 * <br>
	 * @param value チェック対象の文字列
	 * @return 文字列に値が格納されている場合はtrue、格納されていない場合はfalse
	 */
	public static boolean isNotNullCheck(String value)
	{
		return JCNBatCheckUtil.isNotNullCheck(value);
	}
	
	/**
	 * 先頭からゼロパディングします。<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 指定サイズ（バイト数）
	 * @param arg2 文字コード（ＯＳ準拠の場合は""（空）を指定）
	 * @return String 調整後の文字列
	 * @throws UnsupportedEncodingException 文字コード指定にて、例外が発生した場合
	 */
	public static String adjustCharSize(String arg0, int arg1, String arg2) throws UnsupportedEncodingException
	{
		return JCCBatCommon.adjustCharSize(arg0, arg1, arg2);
	}
	
	/**
	 * 指定した日付に応じて下記の値を返却する。
	 * 1.指定した日付が日曜日以外の時は週の月曜日と翌週の日曜日の日付を返却する。
	 * 2.指定した日付が日曜日の時は前週の月曜日と当日(日曜日)の日付を返却する。
	 * <br>
	 * @param arg0 指定した日付
	 * @return arrayList 処理対象日に対応した日付を 1.月曜日、2.日曜日の順番にString型で返す。
	 * @throws Exception 指定した日付にて、例外が発生した場合
	 */
	public static ArrayList<String> getDayOfTheWeek(String arg0) throws Exception
	{
		return JCNBatDateUtil.getDayOfTheWeek(arg0);
	}
}
