/**
* @version $Id: JumanDicTransfer.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $
*
* 2013/02/05 13:00:08
* @author kobayashi
*
* Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved.
*/
package com.tida_okinawa.corona.correction.morphem.compile;
import java.io.File;
import java.io.IOException;
import org.eclipse.jface.preference.IPreferenceStore;
import com.tida_okinawa.corona.common.ILogger;
import com.tida_okinawa.corona.correction.morphem.preference.MorphemePreference;
/**
* Juman辞書転送機能(サーバーモード)
*
* @author kobayashi
*
*/
public class JumanDicTransfer {
/**
* 辞書ファイルの一覧
* <p>
* 設定では変わらないので static
*/
final static String[] LOCAL_FILES = { "jumandic.dat", "jumandic.mat", "jumandic.pat", "jumandic.tab", "JUMAN.connect", "JUMAN.grammar", "JUMAN.kankei",
"JUMAN.katuyou" };
/**
* サーバー接続関連(USERNAME, PASSWD, HOSTNAME)
* <p>
* 設定を変更後に反映したいので、staticにはしない
*/
final IPreferenceStore STORE = MorphemePreference.getPreferenceStore();
final String USERNAME = STORE.getString(MorphemePreference.PREF_SERVER_USERNAME);
final String PASSWD = STORE.getString(MorphemePreference.PREF_SERVER_PASSWD);
final String[] HOSTNAME = MorphemePreference.getJumanHostNames();
/**
* 転送ファイル関連(LOCAL_DIR, REMOTE_DIR)
* <p>
* 設定を変更後に反映したいので、staticにはしない
*/
final String LOCAL_DIR = STORE.getString(MorphemePreference.PREF_JUMAN_DIC_DIR);
final String REMOTE_DIR = "/home/" + USERNAME + "/dic/";
/**
* 辞書転送機能(自動転送)
* 辞書コンパイル、ターゲット切り替え時(CleansingMorphemeHandlerから呼び出し)
*
* @throws IOException
*/
public void dicTrancefer(ILogger logger) throws IOException {
boolean useserver = STORE.getBoolean(MorphemePreference.PREF_SERVER_MODE);
if (useserver == true) {
for (String hostname : HOSTNAME) {
SshClient client = new SshClient(hostname, USERNAME, PASSWD);
try {
for (String local_file : LOCAL_FILES) {
client.upload(LOCAL_DIR + File.separator + local_file, REMOTE_DIR);
}
logger.getOutStream().println("辞書転送に成功しました:(" + hostname + ")");
} catch (Exception e) {
logger.getErrStream().println("辞書転送に失敗しました:(" + hostname + ")");
} finally {
client.finalize();
}
}
}
}
}