palio.connectors.schema.generators
Class AbstractSQLGenerator

java.lang.Object
  extended by palio.connectors.schema.generators.AbstractSQLGenerator
Direct Known Subclasses:
DB2SQLGenerator, DeprecatedPostgreSQLGenerator, HSQLDBGenerator, MSSQL2kGenerator, MySQLGenerator, OracleSQLGenerator, PostgreSQLGenerator, SybaseSQLGenerator

public abstract class AbstractSQLGenerator
extends java.lang.Object

Author:
Szymon Kuklewicz, Damian Turczyński

Constructor Summary
AbstractSQLGenerator()
           
 
Method Summary
abstract  void alterTableAddColumn(SQLBatch sqls, java.lang.String table, java.lang.String column, TableColumnDataType dataType, java.lang.Object defaultValue, boolean notNull)
           
 void alterTableAddForeignKey(SQLBatch sqls, java.lang.String table, java.lang.String constraintName, java.lang.String columns, java.lang.String references)
           
abstract  void alterTableAddKey(SQLBatch sqls, java.lang.String table, ConstraintType constraintType, java.lang.String constraintName, java.lang.String columns, java.lang.String additional)
           
 void alterTableAddPrimaryKey(SQLBatch sqls, java.lang.String table, java.lang.String constraintName, java.lang.String columns)
           
 void alterTableAddUniqueKey(SQLBatch sqls, java.lang.String table, java.lang.String constraintName, java.lang.String columns)
           
abstract  void alterTableAlterColumn(SQLBatch sqls, java.lang.String table, java.lang.String column, TableColumnDataType dataType, java.lang.Object defaultValue, boolean changeNotNull, boolean shouldBeNotNull)
          Parameter notNull may be null if state of "not null constraint" is not to be changed
 void alterTableDropColumn(SQLBatch sqls, java.lang.String table, java.lang.String column)
           
 void alterTableDropForeignKey(SQLBatch sqls, java.lang.String table, java.lang.String constraintName)
           
abstract  void alterTableDropKey(SQLBatch sqls, java.lang.String table, ConstraintType constraintType, java.lang.String constraintName)
           
 void alterTableDropPrimaryKey(SQLBatch sqls, java.lang.String table, java.lang.String constraintName)
           
 void alterTableDropUniqueKey(SQLBatch sqls, java.lang.String table, java.lang.String constraintName)
           
abstract  void alterTableSetNotNull(SQLBatch sqls, java.lang.String table, java.lang.String column, TableColumnDataType currentDataType, java.lang.Object currentDefaultValue, boolean notNull)
          Some databases require repeating of column data type where some don't so user should not expect that this operation may change column data type as well.
 boolean areConstraintsViolateColumnDataTypeChange()
          Note!
 void createIndex(SQLBatch sqls, java.lang.String name, java.lang.String tableName, java.lang.String columns)
           
abstract  void createSequence(SQLBatch sqls, java.lang.String name)
           
abstract  void createTable(SQLBatch sqls, Table table)
           
 void dropIndex(SQLBatch sqls, java.lang.String name, java.lang.String tableName, java.lang.String columns)
           
abstract  void dropSequence(SQLBatch sqls, java.lang.String sequenceToDrop)
           
abstract  void dropTable(SQLBatch sqls, java.lang.String tableToDrop)
           
 DatabaseSchema scanDatabase(SQLConnector connector, SQLScannerFilter filter)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSQLGenerator

public AbstractSQLGenerator()
Method Detail

areConstraintsViolateColumnDataTypeChange

public boolean areConstraintsViolateColumnDataTypeChange()
Note! Implementations should not create indexes for foreign keys as there are automatically created outside createTable routime.


createTable

public abstract void createTable(SQLBatch sqls,
                                 Table table)

createSequence

public abstract void createSequence(SQLBatch sqls,
                                    java.lang.String name)

alterTableAddKey

public abstract void alterTableAddKey(SQLBatch sqls,
                                      java.lang.String table,
                                      ConstraintType constraintType,
                                      java.lang.String constraintName,
                                      java.lang.String columns,
                                      java.lang.String additional)

alterTableAddColumn

public abstract void alterTableAddColumn(SQLBatch sqls,
                                         java.lang.String table,
                                         java.lang.String column,
                                         TableColumnDataType dataType,
                                         java.lang.Object defaultValue,
                                         boolean notNull)

alterTableAlterColumn

public abstract void alterTableAlterColumn(SQLBatch sqls,
                                           java.lang.String table,
                                           java.lang.String column,
                                           TableColumnDataType dataType,
                                           java.lang.Object defaultValue,
                                           boolean changeNotNull,
                                           boolean shouldBeNotNull)
Parameter notNull may be null if state of "not null constraint" is not to be changed


alterTableSetNotNull

public abstract void alterTableSetNotNull(SQLBatch sqls,
                                          java.lang.String table,
                                          java.lang.String column,
                                          TableColumnDataType currentDataType,
                                          java.lang.Object currentDefaultValue,
                                          boolean notNull)
Some databases require repeating of column data type where some don't so user should not expect that this operation may change column data type as well.


alterTableDropKey

public abstract void alterTableDropKey(SQLBatch sqls,
                                       java.lang.String table,
                                       ConstraintType constraintType,
                                       java.lang.String constraintName)

dropTable

public abstract void dropTable(SQLBatch sqls,
                               java.lang.String tableToDrop)

dropSequence

public abstract void dropSequence(SQLBatch sqls,
                                  java.lang.String sequenceToDrop)

alterTableDropForeignKey

public void alterTableDropForeignKey(SQLBatch sqls,
                                     java.lang.String table,
                                     java.lang.String constraintName)

alterTableDropPrimaryKey

public void alterTableDropPrimaryKey(SQLBatch sqls,
                                     java.lang.String table,
                                     java.lang.String constraintName)

alterTableDropUniqueKey

public void alterTableDropUniqueKey(SQLBatch sqls,
                                    java.lang.String table,
                                    java.lang.String constraintName)

alterTableDropColumn

public void alterTableDropColumn(SQLBatch sqls,
                                 java.lang.String table,
                                 java.lang.String column)

alterTableAddForeignKey

public void alterTableAddForeignKey(SQLBatch sqls,
                                    java.lang.String table,
                                    java.lang.String constraintName,
                                    java.lang.String columns,
                                    java.lang.String references)

alterTableAddUniqueKey

public void alterTableAddUniqueKey(SQLBatch sqls,
                                   java.lang.String table,
                                   java.lang.String constraintName,
                                   java.lang.String columns)

alterTableAddPrimaryKey

public void alterTableAddPrimaryKey(SQLBatch sqls,
                                    java.lang.String table,
                                    java.lang.String constraintName,
                                    java.lang.String columns)

createIndex

public void createIndex(SQLBatch sqls,
                        java.lang.String name,
                        java.lang.String tableName,
                        java.lang.String columns)

dropIndex

public void dropIndex(SQLBatch sqls,
                      java.lang.String name,
                      java.lang.String tableName,
                      java.lang.String columns)

scanDatabase

public DatabaseSchema scanDatabase(SQLConnector connector,
                                   SQLScannerFilter filter)
                            throws palio.PalioException
Throws:
palio.PalioException