package jp.terasoluna.batch.functionsample.b000;

import java.io.File;

import jp.terasoluna.fw.batch.blogic.BLogic;
import jp.terasoluna.fw.batch.blogic.vo.BLogicParam;
import jp.terasoluna.fw.file.util.FileControl;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

/**
 * ファイル関連ジョブのサンプル<br>
 * <br>
 * 
 * 事前準備：C:\tmp配下にinput.csvファイルを配置すること <br>
 * <br>
 * サンプル内容： TERASOLUNA Batch Framework for
 * Javaのファイルコピー機能を利用して、input.csvファイルをresult2.csvにコピーするサンプル。
 * 
 * 
 * 
 */
public class B000002BLogic implements BLogic {

	private Log log = LogFactory.getLog(B000002BLogic.class);

	private static final int BATCH_NORMAL_END = 0;
	private static final int BATCH_ABNORMAL_END = 100;

	@Autowired
	@Qualifier("fileControl")
	private FileControl fileControl = null;

	public int execute(BLogicParam arg0) {

		String srcFile = "C:\\tmp\\input.csv";
		String copyFile = "C:\\tmp\\result2.csv";

		if (arg0 != null && arg0.getJobArgNm1() != null) {
			File f = new File(arg0.getJobArgNm1());
			if (f.exists()) {
				srcFile = arg0.getJobArgNm1();
			} else {
				return BATCH_ABNORMAL_END;
			}
		}

		if (arg0 != null && arg0.getJobArgNm2() != null) {
			copyFile = arg0.getJobArgNm2();
		}

		// ファイル操作機能をBean定義から取得する。
		fileControl.copyFile(srcFile, copyFile);

		log.info(copyFile + "作成");

		// 正常終了
		return BATCH_NORMAL_END;
	}

}
