|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.objectweb.cjdbc.controller.backend.DatabaseBackendMetaData
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.
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. |
private MetadataContainer |
metadataContainer
Container for static metadata |
private java.lang.String |
schemaName
The name of the schema used to gather meta data |
Constructor Summary | |
DatabaseBackendMetaData(AbstractConnectionManager connectionManager,
Trace logger,
int dynamicPrecision,
boolean gatherSystemTables,
java.lang.String schemaName)
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. |
private void |
insertMetadataInContainer(java.sql.DatabaseMetaData metaData,
java.lang.String methodName,
java.lang.Class[] parametersType,
java.lang.Object[] arguments)
This method invokes by reflection the appropriate metadata method and fills the container with the result. |
private void |
overrideCJDBCSpecificFeatures()
This method overrides metdata container information with C-JDBC specific limitations. |
MetadataContainer |
retrieveDatabaseMetadata()
Retrieve metadata from a connection on this backend and build the ("getDataXXX(Y,Z, |
private void |
updateContainerInformation(java.lang.String methodName,
java.lang.Class[] parametersType,
java.lang.Object[] arguments,
java.lang.Object result)
Update the metadata container information for the given method. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private AbstractConnectionManager connectionManager
private Trace logger
private DatabaseSchema databaseSchema
private int dynamicPrecision
private boolean gatherSystemTables
private java.lang.String schemaName
private MetadataContainer metadataContainer
Constructor Detail |
public DatabaseBackendMetaData(AbstractConnectionManager connectionManager, Trace logger, int dynamicPrecision, boolean gatherSystemTables, java.lang.String schemaName)
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.
connectionManager
- the connection manager to gather the schema fromlogger
- the logger (usually the backend logger) to usedynamicPrecision
- the precision with which we gather a schema
directly from the backendgatherSystemTables
- true if system tables must be gatheredschemaName
- schema name to use to retrieve informationMethod Detail |
private void insertMetadataInContainer(java.sql.DatabaseMetaData metaData, java.lang.String methodName, java.lang.Class[] parametersType, java.lang.Object[] arguments)
metaData
- metadata to invokemethodName
- method to invokeparametersType
- parameters type of method to invokearguments
- arguments to invoke the methodprivate void updateContainerInformation(java.lang.String methodName, java.lang.Class[] parametersType, java.lang.Object[] arguments, java.lang.Object result)
methodName
- method invoked to generate the key in the containerparametersType
- parameters type of invoked methodarguments
- arguments used to invoke the methodresult
- result of the method callpublic MetadataContainer retrieveDatabaseMetadata() throws java.sql.SQLException
java.sql.SQLException
- if an error occursprivate void overrideCJDBCSpecificFeatures()
public void createDatabaseSchemaDynamically() throws java.sql.SQLException
null
.
java.sql.SQLException
- if an error occurspublic DatabaseSchema getDatabaseSchema() throws java.sql.SQLException
null
If an error has
occured during the schema generation.
If the schema has not been previously computed,
createDatabaseSchemaDynamically()
is called.
DatabaseSchema
value
java.sql.SQLException
- if a problem occurs when creating the database
schemacreateDatabaseSchemaDynamically()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |