|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.clazzes.jdbc2xml.schema.SchemaEngine
org.clazzes.jdbc2xml.schema.impl.SchemaEngineImpl
public class SchemaEngineImpl
The default implementation of the schema engine.
Constructor Summary | |
---|---|
SchemaEngineImpl()
Default constructor. |
Method Summary | |
---|---|
TableInfo |
addColumn(TableInfo ti,
ColumnInfo columnInfo)
Add a column to an existing table. |
TableInfo |
addForeignKey(TableInfo ti,
ForeignKeyInfo foreignKeyInfo)
Add a foreign key to an existing table. |
TableInfo |
addIndex(TableInfo ti,
IndexInfo indexInfo)
Add an index to an existing table. |
TableInfo |
changeColumn(TableInfo ti,
java.lang.String oldColumnName,
ColumnInfo columnInfo)
Rename an existing column of an existing table and possibly change it's type. |
void |
commit()
Perform all pending schema modifications and discard the rollback history. |
void |
createForeignKeys(TableInfo ti)
Create foreign keys of an existing table in the database. |
void |
createIndices(TableInfo ti)
Calls addIndex for each index |
java.sql.PreparedStatement |
createInsertStatement(TableInfo ti,
boolean setAutoValues)
Create an insert statement for all column in the given table. |
void |
createTable(TableInfo ti,
boolean addForeignKeys)
Create a table in the database, including primary key and indices (which must have been added already). |
TableInfo |
dropColumn(TableInfo ti,
java.lang.String columnName,
boolean force)
Drop an existing column of an existing table. |
TableInfo |
dropForeignKey(TableInfo ti,
java.lang.String fkName)
Drop an existing foreign key of an existing table. |
TableInfo |
dropForeignKeys(TableInfo ti)
Drop all existing foreign keys of an existing table. |
TableInfo |
dropIndex(TableInfo ti,
java.lang.String indexName)
Drop an index from an existing table. |
void |
dropStaleBackupTables()
Some operations like drop table or drop column create backup tables for performing rollback operations. |
void |
dropTable(TableInfo ti,
boolean force)
Drop an existing table. |
void |
dropTables(java.util.List<TableInfo> tables,
boolean force)
Drop a list of existing table. |
TableInfo |
fetchTableInfo(java.lang.String tableName,
IndexFilter filter)
Retrieve the current layout of the given table in the database. |
java.util.List<TableInfo> |
fetchTableInfos(TableFilter filter)
Return the layout of multiple table in the database. |
int |
getMaxTableNameLength()
|
java.util.List<java.lang.String> |
getTempTableNames()
|
TableInfo |
modifyColumn(TableInfo ti,
ColumnInfo columnInfo)
Change an existing column of an existing table. |
TableInfo |
renameTable(TableInfo ti,
java.lang.String newTableName)
Rename an existing table. |
void |
rollback()
Roll back all schema operations undertaken since the last call to SchemaEngine.commit() or SchemaEngine.rollback() . |
void |
setConnection(java.sql.Connection connection)
This method initializes the database dialect too, if the the dialect has not been set through SchemaEngine.setDialect(Dialect)
before. |
Methods inherited from class org.clazzes.jdbc2xml.schema.SchemaEngine |
---|
getConnection, getDialect, getSchema, getTimeZone, newInstance, setDialect, setSchema, setTimeZone |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SchemaEngineImpl()
Method Detail |
---|
public void setConnection(java.sql.Connection connection) throws java.sql.SQLException
SchemaEngine
SchemaEngine.setDialect(Dialect)
before.
The dialect is retrieved through a call to
DialectFactory.newDialect(java.sql.DatabaseMetaData)
on
the instance returned by DialectFactory.newInstance()
.
setConnection
in class SchemaEngine
connection
- The database connection to set.
java.sql.SQLException
- If the metadata retrieval on the database failed during
the dialect initialization.public TableInfo fetchTableInfo(java.lang.String tableName, IndexFilter filter) throws java.sql.SQLException
SchemaEngine
fetchTableInfo
in class SchemaEngine
tableName
- The name of the table to search.filter
- The filter retrieval configuration. If a null value is passed,
a default filter will be used, which skips internal indices.
java.sql.SQLException
- Upon database errors.IndexFilter.isKeepInternalIndices()
public java.util.List<TableInfo> fetchTableInfos(TableFilter filter) throws java.sql.SQLException
SchemaEngine
fetchTableInfos
in class SchemaEngine
filter
- If null, return all tables of the configured schema. Otherwise
return only those tables, for which TableFilter.processTable(String)
returns true. Additionally, a null value incurs default table filtering,
which means to fetch all table infos.
java.sql.SQLException
- Upon database errors.public java.sql.PreparedStatement createInsertStatement(TableInfo ti, boolean setAutoValues) throws java.sql.SQLException
SchemaEngine
createInsertStatement
in class SchemaEngine
ti
- The table metadata.setAutoValues
- If true
, columns that use auto increment will be set by this statement too. If false
database should set those values.
java.sql.SQLException
- Upon database errors.public void createTable(TableInfo ti, boolean addForeignKeys) throws java.sql.SQLException
SchemaEngine
createTable
in class SchemaEngine
ti
- The table metadata.addForeignKeys
- If this parameter is true, all foreign keys are generated
together with the table structure. If set to false, you may
create the foreign keys later on using SchemaEngine.createForeignKeys(TableInfo)
.
java.sql.SQLException
- upon database errors.public TableInfo renameTable(TableInfo ti, java.lang.String newTableName) throws java.sql.SQLException
SchemaEngine
renameTable
in class SchemaEngine
ti
- TableInfo
describing the table to be renamed.newTableName
- The new name of the table.
java.sql.SQLException
- Upon database errors.public void createIndices(TableInfo ti) throws java.sql.SQLException
ti
-
java.sql.SQLException
public void createForeignKeys(TableInfo ti) throws java.sql.SQLException
SchemaEngine
createForeignKeys
in class SchemaEngine
ti
- The table metadata.
java.sql.SQLException
- Upon database errors.public TableInfo dropForeignKeys(TableInfo ti) throws java.sql.SQLException
SchemaEngine
dropForeignKeys
in class SchemaEngine
ti
- TableInfo
describing the table containing the foreign keys to drop.
TableInfo
without foreign keys.
java.sql.SQLException
- Upon database errors.public void dropTable(TableInfo ti, boolean force) throws java.sql.SQLException
SchemaEngine
dropTable
in class SchemaEngine
ti
- TableInfo
describing the table to be dropped.force
- If set to true, the data is not backed up before dropping the
table. Consequently, rollback is not supported, if
force
is set to true.
java.sql.SQLException
- Upon database errors.public void dropTables(java.util.List<TableInfo> tables, boolean force) throws java.sql.SQLException
SchemaEngine
dropTables
in class SchemaEngine
tables
- A list of TableInfo
objects describing
the tables to be dropped.force
- If set to true, the data is not backed up before dropping the
table. Consequently, rollback is not supported, if
force
is set to true.
java.sql.SQLException
- Upon database errors.public TableInfo addColumn(TableInfo ti, ColumnInfo columnInfo) throws java.sql.SQLException
SchemaEngine
addColumn
in class SchemaEngine
ti
- TableInfo
describing the table to add column to.columnInfo
- ColumnInfo
holding data for the column to be added.
TableInfo
.
java.sql.SQLException
- Upon database errors.public TableInfo modifyColumn(TableInfo ti, ColumnInfo columnInfo) throws java.sql.SQLException
SchemaEngine
modifyColumn
in class SchemaEngine
ti
- TableInfo
describing the table containing the column to change.columnInfo
- ColumnInfo
holding new definition data for the column.
TableInfo
.
java.sql.SQLException
- Upon database errors.public TableInfo changeColumn(TableInfo ti, java.lang.String oldColumnName, ColumnInfo columnInfo) throws java.sql.SQLException
SchemaEngine
changeColumn
in class SchemaEngine
ti
- TableInfo
describing the table containing the column to change.oldColumnName
- The original name of the column.columnInfo
- ColumnInfo
holding the new name and the
new definition data for the column.
TableInfo
.
java.sql.SQLException
- Upon database errors.public TableInfo dropColumn(TableInfo ti, java.lang.String columnName, boolean force) throws java.sql.SQLException
SchemaEngine
dropColumn
in class SchemaEngine
ti
- TableInfo
describing the table containing the column to drop.columnName
- Name of the column to drop.force
- If set to true, the data is not backed up before dropping the
column. Consequently, rollback is not supported, if
force
is set to true.
TableInfo
.
java.sql.SQLException
- Upon database errors.public TableInfo addForeignKey(TableInfo ti, ForeignKeyInfo foreignKeyInfo) throws java.sql.SQLException
SchemaEngine
addForeignKey
in class SchemaEngine
ti
- TableInfo
describing the table to add the foreign key to.foreignKeyInfo
- The ForeignKeyInfo
to add.
TableInfo
.
java.sql.SQLException
- Upon database errors.public TableInfo dropForeignKey(TableInfo ti, java.lang.String fkName) throws java.sql.SQLException
SchemaEngine
dropForeignKey
in class SchemaEngine
ti
- TableInfo
describing the table to drop the foreign key from.fkName
- The ForeignKeyInfo
to drop.
TableInfo
.
java.sql.SQLException
- Upon database errors.public TableInfo addIndex(TableInfo ti, IndexInfo indexInfo) throws java.sql.SQLException
SchemaEngine
addIndex
in class SchemaEngine
ti
- TableInfo
describing the table to add the index.indexInfo
- The IndexInfo
to add.
TableInfo
.
java.sql.SQLException
- Upon database errors.public TableInfo dropIndex(TableInfo ti, java.lang.String indexName) throws java.sql.SQLException
SchemaEngine
dropIndex
in class SchemaEngine
ti
- TableInfo
describing the table to drop the index from.indexName
- The name of the IndexInfo
to drop.
TableInfo
.
java.sql.SQLException
- Upon database errors.public void dropStaleBackupTables() throws java.sql.SQLException
SchemaEngine
SchemaEngine.commit()
after such operations, these backup tables
remain in the target database.
This call searches these tables, which are named like JDBC2XML__*
and drops them, if necessary.
dropStaleBackupTables
in class SchemaEngine
java.sql.SQLException
public void commit() throws java.sql.SQLException
SchemaEngine
commit
in class SchemaEngine
java.sql.SQLException
- Upon database errors.public void rollback() throws java.sql.SQLException
SchemaEngine
SchemaEngine.commit()
or SchemaEngine.rollback()
.
rollback
in class SchemaEngine
java.sql.SQLException
- Upon database errors or when a rollback
of a schema operation is not supported.public java.util.List<java.lang.String> getTempTableNames()
getTempTableNames
in class SchemaEngine
public int getMaxTableNameLength()
getMaxTableNameLength
in class SchemaEngine
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |