/*
 * 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.DbInfo;
import org.postgresforest.tool.db.GSCdata;

/**
 * データベース・テーブル情報生成
 * 
 * データベース・テーブル情報を作成する。
 *
 */
public class UserDbInfo extends ActionBase {

	/**
	 * @param gsc
	 */
	public UserDbInfo(GSCdata gsc) {
		super(gsc);
		// TODO 自動生成されたコンストラクター・スタブ
	}
	/**
	 * データベース・テーブル情報作成処理
	 * 
	 */
	public ArrayList getUserDbInfo() throws Exception {

		try {
			if (!connectSelect(m_gsc)) {
				throw new Exception();
			}

			//データベース一覧情報作成
			ArrayList dbList = m_gsc.getDbList();
			
			
			//データベース情報一覧作成
			ArrayList dbInfoList = new ArrayList();
			
			//テーブル一覧情報作成
			for (Iterator iter = dbList.iterator(); iter.hasNext();) {
				String dbName = (String) iter.next();
				ArrayList tableList = m_gsc.getTableList(dbName);
				DbInfo dbInfo = new DbInfo();
				dbInfo.setDbName(dbName);
				dbInfo.setTableList(tableList);
				dbInfoList.add(dbInfo);
			}

			return dbInfoList;
			

		} catch (SQLException e) {
			setAccessErrs(m_gsc);
			throw e;
		} finally {
			m_gsc.close();
		}

	}
}
