org.objectweb.cjdbc.controller.backend
Class DatabaseBackendMetaData

java.lang.Object
  extended byorg.objectweb.cjdbc.controller.backend.DatabaseBackendMetaData

public final class DatabaseBackendMetaData
extends java.lang.Object

A DatabaseBackendMetaData is used to retrieve the database schema of a real database backend that will have to be bound to a virtual C-JDBC database.

Version:
1.0
Author:
Julie Marguerite , Emmanuel Cecchet , Nicolas Modrzyk , Mathieu Peltier

Field Summary
private  AbstractConnectionManager connectionManager
          Connection manager to get a connection from.
private  DatabaseSchema databaseSchema
          Schema of the database backend.
private  int dynamicPrecision
          The precision of the dynamically generated schema
private  boolean gatherSystemTables
          Should the system tables be gathered or not
private  Trace logger
          Logger instance.
 
Constructor Summary
DatabaseBackendMetaData(AbstractConnectionManager connectionManager, Trace logger, int dynamicPrecision, boolean gatherSystemTables)
          Creates a new DatabaseBackendMetaData instance.
 
Method Summary
 void createDatabaseSchemaDynamically()
          Gets the list of tables of a database and add them to the database schema.
 DatabaseSchema getDatabaseSchema()
          Returns the database schema.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

connectionManager

private AbstractConnectionManager connectionManager
Connection manager to get a connection from.


logger

private Trace logger
Logger instance.


databaseSchema

private DatabaseSchema databaseSchema
Schema of the database backend.


dynamicPrecision

private int dynamicPrecision
The precision of the dynamically generated schema


gatherSystemTables

private boolean gatherSystemTables
Should the system tables be gathered or not

Constructor Detail

DatabaseBackendMetaData

public DatabaseBackendMetaData(AbstractConnectionManager connectionManager,
                               Trace logger,
                               int dynamicPrecision,
                               boolean gatherSystemTables)
Creates a new DatabaseBackendMetaData instance. This class takes care of initializing the connection manager if needed but the driver must have been previously loaded else the connection manager's initialization will fail.

Parameters:
connectionManager - the connection manager to gather the schema from
logger - the logger (usually the backend logger) to use
dynamicPrecision - the precision with which we gather a schema directly from the backend
gatherSystemTables - true if system tables must be gathered
Method Detail

createDatabaseSchemaDynamically

public void createDatabaseSchemaDynamically()
                                     throws java.sql.SQLException
Gets the list of tables of a database and add them to the database schema. The caller must ensure that the parameters are not null.

Throws:
java.sql.SQLException - if an error occurs

getDatabaseSchema

public DatabaseSchema getDatabaseSchema()
                                 throws java.sql.SQLException
Returns the database schema. Returns null If an error has occured during the schema generation.

If the schema has not been previously computed, createDatabaseSchemaDynamically()is called.

Returns:
a DatabaseSchema value
Throws:
java.sql.SQLException - if a problem occurs when creating the database schema
See Also:
createDatabaseSchemaDynamically()


Copyright © 2002, 2005 - ObjectWeb Consortium - All Rights Reserved.