/*
 * Copyright (C) 2005 NTT DATA Corporation
 * 
 */
package org.postgresforest.tool.action;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;

import org.postgresforest.tool.bean.ServerInfo;
import org.postgresforest.tool.db.GSCdata;
import org.postgresforest.tool.db.UserData;

/**
 * ユーザーログインクラス
 * 
 * ユーザーメニューのログイン（データベースへの接続）を行う。
 */
public class UserLoginMng extends ActionBase {

	
	/**
	 * @param gsc
	 */
	public UserLoginMng(GSCdata gsc) {
		super(gsc);
		// TODO 自動生成されたコンストラクター・スタブ
	}
	/**
	 * ユーザーデータクラス作成処理
	 * 
	 * <pre>
	 * 入力情報"loginInfo"から、以下の処理を行う。
	 * ・ユーザーデータクラスの生成
	 * ・ユーザーデータクラスのデータベースコネクト（ログイン）
	 * ・ユーザーデータクラスのセッション・プロパティへ設定
	 * 
	 * </pre>
	 */
	public UserData getUserDb(String userDb) {
		
		

		//ユーザーデータベース管理
		UserData userData = new UserData(m_gsc.getUserPassword());
		userData.setDbName(userDb);

		//サーバへの接続(ログイン)
		try {
			if (!connect(m_gsc)) {
				return null;
			}

			//サーバIDでインスタンス情報取得
			ArrayList serverList = m_gsc.getServerList(userDb);
			for (Iterator iter = serverList.iterator(); iter.hasNext();) {
				ServerInfo serverInfo = (ServerInfo) iter.next();
				String host = serverInfo.getHost();
				String port = serverInfo.getPort();

				//ユーザDBクラスに追加
				userData.addUrl(host, port);
			}

		} catch (SQLException e) {
			return null;
		} finally {
			m_gsc.close();
		}

		return userData;
	}
	
}
