/** * @version $Id: Cleansing2.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $ * * 2012/10/05 20:20:06 * @author kousuke-morishima * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. */ package com.tida_okinawa.corona.correction.script; import java.lang.reflect.InvocationTargetException; import org.eclipse.jface.dialogs.ProgressMonitorDialog; import org.eclipse.swt.widgets.Shell; import com.tida_okinawa.corona.ui.controllers.ClaimWorkDataController; import com.tida_okinawa.corona.ui.data.ClaimWorkDataRecord; /** * クレンジング処理をコンソールから行うクラスの基底クラス。 * Morpheme、Pattern、Synonym、ExportCSVに適用される * * @author kousuke-morishima * * @param <TS> * 入力データタイプ * @param <TD> * 出力データタイプ */ public abstract class Cleansing2<TS extends ClaimWorkDataRecord, TD extends ClaimWorkDataRecord> extends Cleansing { protected static final String TYPE_MOR = "Morpheme"; //$NON-NLS-1$ protected static final String TYPE_DEP = "Dependency"; //$NON-NLS-1$ protected static final String TYPE_SYN = "Synonym"; //$NON-NLS-1$ /** * 自動実行用 * * @param args * 引数 */ Cleansing2(String[] args) { super(args); } /** 指定されたプロジェクトがないときのエラーコード */ public static final int ERROR_CODE_NO_PROJECT = 5; /** 指定されたターゲットがないときのエラーコード */ public static final int ERROR_CODE_NO_TARGET = 6; @Override String getErrorMessage(int errorCode) { switch (errorCode) { case ERROR_CODE_NO_PROJECT: return Messages.Cleansing2_NoProject; case ERROR_CODE_NO_TARGET: return Messages.Cleansing2_NoProduct; default: return super.getErrorMessage(errorCode); } } boolean run(ClaimWorkDataController<TS, TD> controller) { final ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell()); try { dialog.run(true, true, controller); } catch (InvocationTargetException e) { e.printStackTrace(); errorExit(ERROR_CODE_ANY_EXCEPTION, e.getLocalizedMessage()); return false; } catch (InterruptedException e) { e.printStackTrace(); errorExit(ERROR_CODE_INTERRUPTED, e.getLocalizedMessage()); return false; } return true; } }