../fw.batch/src/main/java/com/xxxxxxx/drvpp/fw/batch/controller/ApplicationControllerImpl.java
1 
package com.xxxxxxx.drvpp.fw.batch.controller;
2
3 
import java.util.HashMap;
4 
import java.util.List;
5 
import java.util.Map;
6
7 
import org.apache.ibatis.session.SqlSession;
8 
import org.springframework.context.ApplicationContext;
9
10 
import com.xxxxxxx.drvpp.fw.batch.util.BatchParameter;
11 
import com.xxxxxxx.drvpp.fw.batch.util.Business;
12 
import com.xxxxxxx.drvpp.fw.common.log.Logger;
13 
import com.xxxxxxx.drvpp.fw.common.log.LoggerFactory;
14 
import com.xxxxxxx.drvpp.fw.common.log.LoggerFactoryBuilder;
15 
import com.xxxxxxx.drvpp.fw.common.mybatis.MyBatisSessionFactory;
16 
import com.xxxxxxx.drvpp.fw.common.util.BeanFactoryBuilder;
17
180
public class ApplicationControllerImpl implements ApplicationController {
190
	private BatchParameter parameter = null;
20
21 
	public int doExecute(String[] args) {
22 
		// ロガー取得
230
		LoggerFactoryBuilder loggerFactoryBuilder = LoggerFactoryBuilder
0 Path coverage: 0/5 A: 0 B: 0 C: 0 D: 0 E: 0
240
				.getInstance();
250
		LoggerFactory loggerFactory = loggerFactoryBuilder.getLoggerFactory();
260
		Logger logger = loggerFactory.getLogger(this.getClass());
27
28 
		// DBセッション取得
290
		MyBatisSessionFactory sessionFactory = MyBatisSessionFactory
300
				.getInstance();
310
		SqlSession sqlSession = sessionFactory.openSession();
32
33 
		// アプリケーションコンテキスト取得(Beanの生成に使用)
340
		BeanFactoryBuilder builder = BeanFactoryBuilder.getInstance();
350
		ApplicationContext applicationContext = builder.build();
36
37 
		// フローの決定
380
		List<Business> flow = (List<Business>) applicationContext
390
				.getBean("businessList");
40
41 
		// 実行
420
		Map<String, Object> input = new HashMap<String, Object>();
430
		Map<String, Object> output = new HashMap<String, Object>();
440
		int result = -1;
450
		for (Business b : flow) {
46 
			// パラメータ設定
470
			parameter = new BatchParameter();
480
			parameter.setSqlSession(sqlSession);
49 
			// parameter.setRequestParameter(requestParameter);
50 
			// parameter.setRequest(request);
51 
			// parameter.setModel(model);
52 
			// parameter.setViewName("error");
530
			parameter.setArgs(args);
54
550
			result = -1;
56 
			try {
570
				input.clear();
580
				input.putAll(output);
590
				output.clear();
60
61 
				// ビジネスロジック起動
620
				result = b.doExecute(parameter);
630
			} catch (Exception e) {
64 
				// TODO
650
				e.printStackTrace();
660
			} finally {
67 
				// 起動後処理
680
				if (result == 0) {
690
					sqlSession.commit();
700
				} else {
710
					sqlSession.rollback();
720
					if (result < 0) {
730
						break;
74 
					}
75 
				}
760
			}
77 
		}
78
790
		return result;
80 
	}
81
82 
	public BatchParameter getParameter() {
830
		return parameter;
84 
	}
85 
}