/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKyoseiMadoguchiFileDel
*	ソースファイル名	：JBSbatKKKyoseiMadoguchiFileDel.java
*	作成者				：富士通　
*	作成日				：2011年09月16日
*＜機能概要＞
*　処理済ファイル削除部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/16  FJ)古田		新規作成
*	v3.00.00	2012/11/23	FJ)柳		【TAI-2012-0000095】対応
*********************************************************************/
package eo.business.service;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

import eo.business.common.JBSbatBusinessService;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;

/**
* (クラスの機能概要) <p>
*<BR>
* @author FJ)古田
*/
public class JBSbatKKKyoseiMadoguchiFileDel extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
		super.logPrint.printDebugLog("execute_START");

		// 削除対象ファイル名を取得します。
		String[] delFileList = super.commonItem.getFreeItem().split(";");

		// 中間ファイルより削除対象外ファイル名を取得します。
		Map<String, String> delMap = new HashMap<String, String>();
		BufferedReader in_reader = null;
		try 
		{
			in_reader = new BufferedReader(new InputStreamReader(new FileInputStream(delFileList[0])));
	
			String filePath = null;
	
			while (in_reader.ready())
			{
	
				filePath = in_reader.readLine();
				super.logPrint.printDebugLog("削除対象外ファイル[" + filePath + "]");
	
				delMap.put(filePath, "");
			}
		} catch (IOException e) {
			throw new JBSbatBusinessException("EKKB0020CE", new String[]{delFileList[0]});
		} finally {
			if(in_reader != null){
				in_reader.close();
			}
		}

		// ファイルを削除します。
		for (int i = 0; i < delFileList.length; i++)
		{
			// 削除対象外ファイル名が存在しない場合削除します。
			if(!delMap.containsKey(delFileList[i]))
			{
				super.logPrint.printDebugLog("ファイルを削除します[" + delFileList[i] + "]");
				File rlsFile = new File(delFileList[i]);

				rlsFile.delete();
			}
		}

		super.logPrint.printDebugLog("execute_END");
		return null;
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
