私はいくつかのメソッドを持つ impl クラスを持っています。それらはすべて基本的に、異なる引数リストを持つ runtime.exec を使用してスクリプトを呼び出します。
public String doExport(String ruleIds, String fileName) throws Exception{
StringBuffer cmd = new StringBuffer();
cmd.append(SOME_SCRIPT + " -a export ");
cmd.append(" -f " );
cmd.append(fileName);
cmd.append(" -r " );
cmd.append(ruleIds);
cmd.append(" 2>/dev/null");
return execCmd(cmd.toString());
}
public String doImport(String fileName, String user, String iface) throws Exception {
StringBuffer cmd = new StringBuffer();
cmd.append(SOME_SCRIPT + " -a import ");
cmd.append(" -f " );
cmd.append(fileName);
cmd.append(" -m " );
cmd.append("user");
cmd.append(" -u " );
cmd.append(user);
cmd.append(" -I " );
cmd.append(iface);
return execCmd(cmd.toString());
}
public String setRulesMode(String mode) throws Exception {
String cmd = SOME_SCRIPT + " -a ";
return execCmd(cmd.toString());
}
これを行うより良い方法はありますか?コマンドと引数をカプセル化する、またはそれを行うより一般的な方法は? enum を使用しようとしましたが、静的/定数パラメーター リストがある場合は enum を使用する方が適切であることがわかったので、より良い代替案を探しています。