|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.ddlutils.platform.JdbcModelReader
An utility class to create a Database model from a live database.
Constructor Summary | |
JdbcModelReader(Platform platform)
Creates a new model reader instance. |
Method Summary | |
protected void |
determineAutoIncrementFromResultSetMetaData(Table table,
Column[] columnsToCheck)
Helper method that determines the auto increment status for the given columns via the ResultSetMetaData.isAutoIncrement(int) method. |
String |
determineSchemaOf(Connection connection,
String schemaPattern,
Table table)
Deprecated. Will be removed once full schema support is in place |
protected List |
getColumnsForColumn()
Returns the descriptors for the columns to be read from the column meta data result set. |
protected List |
getColumnsForFK()
Returns the descriptors for the columns to be read from the foreign key meta data result set. |
protected List |
getColumnsForIndex()
Returns the descriptors for the columns to be read from the index meta data result set. |
protected List |
getColumnsForPK()
Returns the descriptors for the columns to be read from the primary key meta data result set. |
protected List |
getColumnsForTable()
Returns the descriptors for the columns to be read from the table meta data result set. |
protected Connection |
getConnection()
Returns the active connection. |
Database |
getDatabase(Connection connection,
String name)
Reads the database model from the given connection. |
Database |
getDatabase(Connection connection,
String name,
String catalog,
String schema,
String[] tableTypes)
Reads the database model from the given connection. |
String |
getDefaultCatalogPattern()
Returns the catalog(s) in the database to read per default. |
String |
getDefaultColumnPattern()
Returns the default pattern to read the relevant columns from the database. |
String |
getDefaultSchemaPattern()
Returns the schema(s) in the database to read per default. |
String |
getDefaultTablePattern()
Returns the default pattern to read the relevant tables from the database. |
String[] |
getDefaultTableTypes()
Returns the table types to recognize per default. |
Platform |
getPlatform()
Returns the platform that this model reader belongs to. |
PlatformInfo |
getPlatformInfo()
Returns the platform specific settings. |
protected List |
initColumnsForColumn()
Returns descriptors for the columns that shall be read from the result set when reading the meta data for table columns. |
protected List |
initColumnsForFK()
Returns descriptors for the columns that shall be read from the result set when reading the meta data for foreign keys originating from a table. |
protected List |
initColumnsForIndex()
Returns descriptors for the columns that shall be read from the result set when reading the meta data for indices. |
protected List |
initColumnsForPK()
Returns descriptors for the columns that shall be read from the result set when reading the meta data for primary keys. |
protected List |
initColumnsForTable()
Returns descriptors for the columns that shall be read from the result set when reading the meta data for a table. |
protected boolean |
isInternalForeignKeyIndex(DatabaseMetaDataWrapper metaData,
Table table,
ForeignKey fk,
Index index)
Tries to determine whether the index is the internal database-generated index for the given foreign key. |
protected boolean |
isInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData,
Table table,
Index index)
Tries to determine whether the index is the internal database-generated index for the given table's primary key. |
protected boolean |
matches(Index index,
List columnsToSearchFor)
Checks whether the given index matches the column list. |
protected Column |
readColumn(DatabaseMetaDataWrapper metaData,
Map values)
Extracts a column definition from the result set. |
protected Collection |
readColumns(DatabaseMetaDataWrapper metaData,
String tableName)
Reads the column definitions for the indicated table. |
protected Map |
readColumns(ResultSet resultSet,
List columnDescriptors)
Reads the indicated columns from the result set. |
protected void |
readForeignKey(DatabaseMetaDataWrapper metaData,
Map values,
Map knownFks)
Reads the next foreign key spec from the result set. |
protected Collection |
readForeignKeys(DatabaseMetaDataWrapper metaData,
String tableName)
Retrieves the foreign keys of the indicated table. |
protected void |
readIndex(DatabaseMetaDataWrapper metaData,
Map values,
Map knownIndices)
Reads the next index spec from the result set. |
protected Collection |
readIndices(DatabaseMetaDataWrapper metaData,
String tableName)
Determines the indices for the indicated table. |
protected String |
readPrimaryKeyName(DatabaseMetaDataWrapper metaData,
Map values)
Extracts a primary key name from the result set. |
protected Collection |
readPrimaryKeyNames(DatabaseMetaDataWrapper metaData,
String tableName)
Retrieves the names of the columns that make up the primary key for a given table. |
protected Table |
readTable(DatabaseMetaDataWrapper metaData,
Map values)
Reads the next table from the meta data. |
protected Collection |
readTables(String catalog,
String schemaPattern,
String[] tableTypes)
Reads the tables from the database metadata. |
protected void |
removeInternalForeignKeyIndex(DatabaseMetaDataWrapper metaData,
Table table,
ForeignKey fk)
Tries to remove the internal index for the given foreign key. |
protected void |
removeInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData,
Table table)
Tries to remove the internal index for the table's primary key. |
protected void |
removeSystemIndices(DatabaseMetaDataWrapper metaData,
Table table)
Removes system indices (generated by the database for primary and foreign keys) from the table. |
void |
setDefaultCatalogPattern(String catalogPattern)
Sets the catalog(s) in the database to read per default. |
void |
setDefaultColumnPattern(String columnPattern)
Sets the default pattern to read the relevant columns from the database. |
void |
setDefaultSchemaPattern(String schemaPattern)
Sets the schema(s) in the database to read per default. |
void |
setDefaultTablePattern(String tablePattern)
Sets the default pattern to read the relevant tables from the database. |
void |
setDefaultTableTypes(String[] types)
Sets the table types to recognize per default. |
protected void |
sortForeignKeys(Database model)
Sorts the foreign keys in the tables of the model. |
protected String |
unescape(String text,
String unescaped,
String escaped)
Replaces a specific character sequence in the given text with the character sequence whose escaped version it is. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public JdbcModelReader(Platform platform)
platform
- The plaftform this builder belongs toMethod Detail |
public Platform getPlatform()
public PlatformInfo getPlatformInfo()
protected List initColumnsForTable()
protected List initColumnsForColumn()
protected List initColumnsForPK()
protected List initColumnsForFK()
protected List initColumnsForIndex()
public String getDefaultCatalogPattern()
public void setDefaultCatalogPattern(String catalogPattern)
catalogPattern
- The catalog(s)public String getDefaultSchemaPattern()
public void setDefaultSchemaPattern(String schemaPattern)
schemaPattern
- The schema(s)public String getDefaultTablePattern()
public void setDefaultTablePattern(String tablePattern)
tablePattern
- The table patternpublic String getDefaultColumnPattern()
public void setDefaultColumnPattern(String columnPattern)
columnPattern
- The column patternpublic String[] getDefaultTableTypes()
public void setDefaultTableTypes(String[] types)
types
- The table typesprotected List getColumnsForTable()
protected List getColumnsForColumn()
protected List getColumnsForPK()
protected List getColumnsForFK()
protected List getColumnsForIndex()
protected Connection getConnection()
readTables(String, String, String[])
.
null
if there is no active connectionpublic Database getDatabase(Connection connection, String name) throws SQLException
connection
- The connectionname
- The name of the resulting database; null
when the default name (the catalog)
is desired which might be null
itself though
SQLException
public Database getDatabase(Connection connection, String name, String catalog, String schema, String[] tableTypes) throws SQLException
connection
- The connectionname
- The name of the resulting database; null
when the default name (the catalog)
is desired which might be null
itself thoughcatalog
- The catalog to acess in the database; use null
for the default valueschema
- The schema to acess in the database; use null
for the default valuetableTypes
- The table types to process; use null
or an empty list for the default ones
SQLException
protected Collection readTables(String catalog, String schemaPattern, String[] tableTypes) throws SQLException
catalog
- The catalog to acess in the database; use null
for the default valueschemaPattern
- The schema(s) to acess in the database; use null
for the default valuetableTypes
- The table types to process; use null
or an empty list for the default ones
SQLException
protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
metaData
- The database meta datavalues
- The table metadata values as defined by getColumnsForTable()
null
if the result set row did not contain a valid table
SQLException
protected void removeSystemIndices(DatabaseMetaDataWrapper metaData, Table table) throws SQLException
metaData
- The database meta datatable
- The table
SQLException
protected void removeInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData, Table table) throws SQLException
metaData
- The database meta datatable
- The table
SQLException
protected void removeInternalForeignKeyIndex(DatabaseMetaDataWrapper metaData, Table table, ForeignKey fk) throws SQLException
metaData
- The database meta datatable
- The table where the table is definedfk
- The foreign key
SQLException
protected boolean matches(Index index, List columnsToSearchFor)
index
- The indexcolumnsToSearchFor
- The names of the columns that the index should be for
true
if the index matches the columnsprotected boolean isInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData, Table table, Index index) throws SQLException
metaData
- The database meta datatable
- The table owning the indexindex
- The index to check
true
if the index seems to be an internal primary key one
SQLException
protected boolean isInternalForeignKeyIndex(DatabaseMetaDataWrapper metaData, Table table, ForeignKey fk, Index index) throws SQLException
metaData
- The database meta datatable
- The table owning the index and foreign keyfk
- The foreign keyindex
- The index to check
true
if the index seems to be an internal primary key one
SQLException
protected Collection readColumns(DatabaseMetaDataWrapper metaData, String tableName) throws SQLException
metaData
- The database meta datatableName
- The name of the table
SQLException
protected Column readColumn(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
metaData
- The database meta datavalues
- The column meta data values as defined by getColumnsForColumn()
SQLException
protected Collection readPrimaryKeyNames(DatabaseMetaDataWrapper metaData, String tableName) throws SQLException
metaData
- The database meta datatableName
- The name of the table from which to retrieve PK information
SQLException
protected String readPrimaryKeyName(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
metaData
- The database meta datavalues
- The primary key meta data values as defined by getColumnsForPK()
SQLException
protected Collection readForeignKeys(DatabaseMetaDataWrapper metaData, String tableName) throws SQLException
metaData
- The database meta datatableName
- The name of the table from which to retrieve FK information
SQLException
protected void readForeignKey(DatabaseMetaDataWrapper metaData, Map values, Map knownFks) throws SQLException
metaData
- The database meta datavalues
- The foreign key meta data as defined by getColumnsForFK()
knownFks
- The already read foreign keys for the current table
SQLException
protected Collection readIndices(DatabaseMetaDataWrapper metaData, String tableName) throws SQLException
metaData
- The database meta datatableName
- The name of the table
SQLException
protected void readIndex(DatabaseMetaDataWrapper metaData, Map values, Map knownIndices) throws SQLException
metaData
- The database meta datavalues
- The index meta data as defined by getColumnsForIndex()
knownIndices
- The already read indices for the current table
SQLException
protected Map readColumns(ResultSet resultSet, List columnDescriptors) throws SQLException
resultSet
- The result setcolumnDescriptors
- The dscriptors of the columns to read
SQLException
protected void determineAutoIncrementFromResultSetMetaData(Table table, Column[] columnsToCheck) throws SQLException
ResultSetMetaData.isAutoIncrement(int)
method.
table
- The tablecolumnsToCheck
- The columns to check (e.g. the primary key columns)
SQLException
protected void sortForeignKeys(Database model)
model
- The modelprotected String unescape(String text, String unescaped, String escaped)
text
- The textunescaped
- The unescaped string, e.g. "'"escaped
- The escaped version, e.g. "''"
public String determineSchemaOf(Connection connection, String schemaPattern, Table table) throws SQLException
connection
- The database connectionschemaPattern
- The schema pattern to limit the schemas to search intable
- The table to search for
null
if the schema of the table
could not be found
SQLException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |