[Java] 67 Swing 07 外部プログラムの選択(switch文)

Java-Swingアプリの集計、分析等はPythonで処理していますが、処理内容によってコードを使い分けるようにしました。

import java.util.ArrayList;

public class ProcessExecutor {
    public static void exec(String type) throws Exception {
    	System.out.println("ProcessExecutor");

    	// 分類用リスト作成 集計:agg,分析:ana,血統:blo 以降随時追加
    	ArrayList<String> types = new ArrayList<String>();
    		types.add("agg");
    		types.add("ana");
    		types.add("blo");

    	// case番号を付番
    	int type_num = types.indexOf(type);
    	System.out.println("case番号 " + type_num);

    	switch(type_num) {
			case 0: // 集計
				String cmd0 = "python HS_csv_agg.py ; echo 'コマンド完了'";
				ProcessBuilder p0 = new ProcessBuilder("sh", "-c", cmd0);
		        p0.redirectErrorStream(true);
		        // プロセス開始
		        Process process0 = p0.start();
		        // プロセス終了まで待機
		        process0.waitFor();
		        int result = process0.exitValue();
		        System.out.printf("result = %d%n", result);
		        break;
			case 1: // 分析
				String cmd1 = "python HS_csv_ana.py ; echo 'コマンド完了'";
				ProcessBuilder p1 = new ProcessBuilder("sh", "-c", cmd1);
		        p1.redirectErrorStream(true);
		        // プロセス開始
		        Process process1 = p1.start();
		        // プロセス終了まで待機
		        process1.waitFor();
		        int result1 = process1.exitValue();
		        System.out.printf("result = %d%n", result1);
		        break;
    	}
    }
}