package org.postgresql.pljava.restore;

/**
 * リストア実行クラス
 */
public class RestoreDB {
	static String m_user;		// ユーザーID
	static String m_password;	// パスワード
	
	/**
	 * リストア実行
	 * 
	 *	データベース名・ポートNoのデータベースに、ダンプファイルをリストアする 
	 * 
	 * @param port		ポートNo
	 * @param dbName	データベース名
	 * @param dumpData	ダンプファイル
	 * @return	エラーメッセージ
	 */
	public static String execRestore(String port, String dbName, String dumpData) {
		try {
			String ret;
			String command;
			
			command = "pg_restore" +
					  " -p " + port +
			          " -d " + dbName +
			          " " + dumpData;
			String envp[] = new String[2];
			envp[0] = "PGUSER=" + m_user;
			envp[1] = "PGPASSWORD=" + m_password;
			
			ret = Command.execCommand(command, envp);
			
			return ret;
		}
		catch (Exception e) {
			e.printStackTrace();
			return e.getMessage();
		}
	}

	/**
	 * リストア実行ユーザー設定
	 * 
	 *	リストアを実行するユーザーID、パスワードを設定する 
	 * 
	 * @param user		ユーザーID
	 * @param password	パスワード
	 */
	public static boolean setResoreUser(String user, String password) {
		m_user = user;
		m_password = password;
		return true;
	}
}
