package tableDefinition;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import dataWarehousingTools.LogFile;


public class SchemaList  extends LinkedList<SchemaElement>
{
	private static final long serialVersionUID = 1L;

	public SchemaList
	(
		Connection connection, 
		String databaseName, 
		String outputDirectory,
		LogFile logFile
	)
	{
		DatabaseMetaData databaseMetaData = null;
		ResultSet schemaNames = null;
		SchemaElement schemaElement;
		
		try 
		{
			databaseMetaData = connection.getMetaData();
		} 
		catch (SQLException e) 
		{
			e.printStackTrace();
		}	
		
		try 
		{
			schemaNames = databaseMetaData.getSchemas();
		} 
		catch (SQLException e) 
		{
			e.printStackTrace();
		}

		try 
		{
			while (schemaNames.next())
			{
				schemaElement = new SchemaElement();
				schemaElement.setDatabaseName(databaseName);
				schemaElement.setSchemaName(new String(schemaNames.getString("TABLE_SCHEM")));
				this.add(schemaElement);
			}
		} 
		catch (SQLException e) 
		{
			e.printStackTrace();
		}
	}
}
