package profileEngine;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;

public class SchemaList 
{
	public SchemaList(Connection dataConnection, String databaseProduct, String database, DatabaseSchemaTableList databaseSchemaTableList)
	{
		DatabaseMetaData databaseMetaData = null;
		ResultSet schemaNames = null;
		String encoding = null;
		TableElement tableElement;
		
		try 
		{
			databaseMetaData = dataConnection.getMetaData();
		} 
		catch (SQLException e) 
		{
			e.printStackTrace();
		}	
		
		new DatabaseEncoding(dataConnection, databaseProduct, database);
		encoding = new String(DatabaseEncoding.getEncoding());
		
		try 
		{
			schemaNames = databaseMetaData.getSchemas();
		} 
		catch (SQLException e) 
		{
			e.printStackTrace();
		}

		try 
		{
			while (schemaNames.next())
			{
				tableElement = new TableElement();
				tableElement.setDatabaseName(database);
				tableElement.setDatabaseEncoding(encoding);
				tableElement.setSchemaName(new String(schemaNames.getString("TABLE_SCHEM")));
				databaseSchemaTableList.add(tableElement);
			}
		} 
		catch (SQLException e) 
		{
			e.printStackTrace();
		}
	}
}
