wt.tools.generation.sql
Class SQLGenerator

java.lang.Object
  extended bywt.tools.generation.sql.SQLGenerator
Direct Known Subclasses:
OracleSQLGenerator, SQLServerSQLGenerator

public abstract class SQLGenerator
extends Object

Construct a block of sql code to create a table


Field Summary
protected static char COMMA_DELIMITER
           
protected static char DB_DELIMITER
           
private static HashMap PROCESSED_LINKINFOS
           
 
Constructor Summary
SQLGenerator()
           
 
Method Summary
 void createAllClassesTriggerConstraintItems(ClassInfo a_classInfo, DatabaseInfo a_dbInfo, StringBuffer create_buffer, StringBuffer drop_buffer)
           
 void createAlterTableAddColumns(BaseTableInfo a_baseTableInfo, StringBuffer a_buffer)
           
 void createAlterTableDropColumns(BaseTableInfo a_baseTableInfo, StringBuffer a_buffer)
           
 String createArray(String a_arrayName, String a_arrayType)
           
abstract  void createColumnIndex(String a_className, DatabaseInfo a_dbInfo, StringBuffer a_buffer)
           
 void createFKConstraintItems(LinkInfo a_linkInfo, DatabaseInfo a_dbInfo, HashMap createMap)
           
 void createFKConstraintItems(LinkInfo a_linkInfo, DatabaseInfo a_dbInfo, StringBuffer create_buffer, StringBuffer drop_buffer)
           
 void createFKConstraintItems(LinkInfo a_linkInfo, DatabaseInfo a_dbInfo, StringBuffer create_buffer, StringBuffer drop_buffer, HashMap createMap)
           
 void createFKConstraints(String a_constraintName, String a_linkClassTableName, List linkColumnNames, String a_roleClassTableName, List roleColumnNames, boolean a_isOwner, boolean a_isLinkTable, StringBuffer a_buffer)
           
 void createIndex(BaseTableInfo a_tableInfo, String[] a_columns, boolean a_isUnique, String a_indexName, StringBuffer a_buffer)
          This method constructs the clause to create an index
 String createIndexItems(String a_className, DatabaseInfo a_dbInfo)
           
protected  void createIndexOption(BaseTableInfo a_tableInfo, StringBuffer a_buffer)
           
abstract  void createIndicies(BaseTableInfo a_baseTableInfo, String[][] a_indexColumns, boolean a_isUnique, StringBuffer a_buffer)
           
 void createLinkSpecificTriggerConstraintItems(LinkInfo a_linkInfo, DatabaseInfo a_dbInfo, StringBuffer create_buffer, StringBuffer drop_buffer)
           
 void createLinkTriggerConstraintItems(DatabaseInfo a_dbInfo, LinkInfo a_linkInfo, String propertyName, StringBuffer create_buffer, StringBuffer drop_buffer)
           
 void createRoleFKConstraintItems(DatabaseInfo a_dbInfo, RoleDescriptor a_roleDescriptor, String propertyName, String referenceType, boolean isLinkTable, StringBuffer create_buffer, StringBuffer drop_buffer, HashMap createMap)
           
 void createRoleTriggerConstraintItems(DatabaseInfo a_dbInfo, RoleDescriptor a_roleDescriptor, String role_side, StringBuffer create_buffer, StringBuffer drop_buffer)
           
 String createSequence(String a_sequenceName, String a_seed, String a_increment)
           
 long createStruct(String a_structName, StringBuffer a_buffer, ClassInfo a_classInfo, DatabaseInfo a_dbInfo)
           
abstract  void createTable(String a_className, ClassInfo a_classInfo, DatabaseInfo a_dbInfo, StringBuffer a_buffer)
           
 String createTableItems(String a_className, DatabaseInfo a_dbInfo)
           
 void createTriggerConstraintItems(ClassInfo a_classInfo, DatabaseInfo a_dbInfo, StringBuffer create_buffer)
           
 void createTriggerConstraints_removeLink(String roleClassTableName, String linkTablesList, String linkColumnName, boolean isLinkTable, StringBuffer create_buffer, StringBuffer drop_buffer)
           
 void createTriggerConstraints_removeRole(String linkClassTableName, List roleTablesList, String refColumnName, StringBuffer create_buffer, StringBuffer drop_buffer)
           
 String createTriggerItems(String a_className, DatabaseInfo a_dbInfo)
           
 String createView(DatabaseInfo a_dbInfo)
           
 String dropArray(String a_className, StringBuffer a_buffer)
           
abstract  void dropColumnIndex(String a_className, DatabaseInfo a_dbInfo, StringBuffer a_buffer)
           
 void dropFKConstraints(String a_constraintName, String a_linkClassTableName, StringBuffer a_buffer)
           
abstract  void dropIndex(BaseTableInfo a_tableInfo, String[] a_columns, boolean a_isUnique, String a_indexName, StringBuffer a_buffer)
           
 String dropIndexItems(String a_className, DatabaseInfo a_dbInfo)
           
abstract  void dropIndicies(BaseTableInfo a_baseTableInfo, String[][] a_indexColumns, boolean a_isUnique, StringBuffer a_buffer)
           
 String dropSequence(String a_sequenceName, StringBuffer a_buffer)
           
 String dropStruct(String a_className, StringBuffer a_buffer)
           
abstract  String dropTable(String a_tableName, StringBuffer a_buffer)
           
 String dropTriggerItems(String a_className, DatabaseInfo a_dbInfo)
           
 String dropView(String a_tableName, StringBuffer a_buffer)
           
protected  String getAdjustedName(String name, int maxLength)
           
protected abstract  String getCommitDelimiter()
           
 ColumnDescriptor[] getComputedColumns(BaseTableInfo a_tableInfo)
           
 String[][] getComputedIndexColumns(String[][] a_indexColumns, boolean a_isUnique)
           
 List getDescendentTables(RoleDescriptor a_roleDescriptor)
           
abstract  String[] getIndexColumns(BaseTableInfo a_tableInfo, String[] a_indexColumns, boolean a_isUnique, int a_indexOffset)
           
protected  String getIndexName(BaseTableInfo a_tableInfo, boolean a_isUnique, String a_indexName)
           
protected abstract  int getMaxIndexNameLength()
           
protected  Map getProcessedLinkInfos()
           
abstract  String getSQLTypeAsString(int sql_type, int string_length)
           
 ColumnDescriptor[] getTableColumns(BaseTableInfo a_tableInfo)
           
 HashSet getTriggerNameList(BaseTableInfo tableInfo)
           
protected abstract  Map getUniqueNames()
           
 HashSet getUpdateColumnList(BaseTableInfo tableInfo)
           
 boolean isComputedColumn(String colName, String[] allColumnNames)
           
protected abstract  boolean isReservedWord(String a_name)
           
abstract  boolean isSQLTypeBlob(int sql_type)
           
protected abstract  void preCreateView(String a_viewName, StringBuffer a_buffer)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DB_DELIMITER

protected static final char DB_DELIMITER
See Also:
Constant Field Values

COMMA_DELIMITER

protected static final char COMMA_DELIMITER
See Also:
Constant Field Values

PROCESSED_LINKINFOS

private static final HashMap PROCESSED_LINKINFOS
Constructor Detail

SQLGenerator

public SQLGenerator()
Method Detail

createTable

public abstract void createTable(String a_className,
                                 ClassInfo a_classInfo,
                                 DatabaseInfo a_dbInfo,
                                 StringBuffer a_buffer)
                          throws WTException
Throws:
WTException

createColumnIndex

public abstract void createColumnIndex(String a_className,
                                       DatabaseInfo a_dbInfo,
                                       StringBuffer a_buffer)
                                throws WTException
Throws:
WTException

dropColumnIndex

public abstract void dropColumnIndex(String a_className,
                                     DatabaseInfo a_dbInfo,
                                     StringBuffer a_buffer)
                              throws WTException
Throws:
WTException

dropTable

public abstract String dropTable(String a_tableName,
                                 StringBuffer a_buffer)

preCreateView

protected abstract void preCreateView(String a_viewName,
                                      StringBuffer a_buffer)

getCommitDelimiter

protected abstract String getCommitDelimiter()

getMaxIndexNameLength

protected abstract int getMaxIndexNameLength()

getUniqueNames

protected abstract Map getUniqueNames()

isReservedWord

protected abstract boolean isReservedWord(String a_name)

getProcessedLinkInfos

protected Map getProcessedLinkInfos()

getTableColumns

public ColumnDescriptor[] getTableColumns(BaseTableInfo a_tableInfo)
                                   throws WTException
Throws:
WTException

createTriggerItems

public String createTriggerItems(String a_className,
                                 DatabaseInfo a_dbInfo)
                          throws WTException
Throws:
WTException

dropTriggerItems

public String dropTriggerItems(String a_className,
                               DatabaseInfo a_dbInfo)
                        throws WTException
Throws:
WTException

createStruct

public long createStruct(String a_structName,
                         StringBuffer a_buffer,
                         ClassInfo a_classInfo,
                         DatabaseInfo a_dbInfo)
                  throws WTException
Throws:
WTException

dropStruct

public String dropStruct(String a_className,
                         StringBuffer a_buffer)
                  throws WTException
Throws:
WTException

createArray

public String createArray(String a_arrayName,
                          String a_arrayType)
                   throws WTException
Throws:
WTException

dropArray

public String dropArray(String a_className,
                        StringBuffer a_buffer)
                 throws WTException
Throws:
WTException

createSequence

public String createSequence(String a_sequenceName,
                             String a_seed,
                             String a_increment)
                      throws WTException
Throws:
WTException

dropSequence

public String dropSequence(String a_sequenceName,
                           StringBuffer a_buffer)
                    throws WTException
Throws:
WTException

createFKConstraints

public void createFKConstraints(String a_constraintName,
                                String a_linkClassTableName,
                                List linkColumnNames,
                                String a_roleClassTableName,
                                List roleColumnNames,
                                boolean a_isOwner,
                                boolean a_isLinkTable,
                                StringBuffer a_buffer)
                         throws WTException
Throws:
WTException

dropFKConstraints

public void dropFKConstraints(String a_constraintName,
                              String a_linkClassTableName,
                              StringBuffer a_buffer)
                       throws WTException
Throws:
WTException

createTriggerConstraints_removeRole

public void createTriggerConstraints_removeRole(String linkClassTableName,
                                                List roleTablesList,
                                                String refColumnName,
                                                StringBuffer create_buffer,
                                                StringBuffer drop_buffer)
                                         throws WTException
Throws:
WTException

createTriggerConstraints_removeLink

public void createTriggerConstraints_removeLink(String roleClassTableName,
                                                String linkTablesList,
                                                String linkColumnName,
                                                boolean isLinkTable,
                                                StringBuffer create_buffer,
                                                StringBuffer drop_buffer)
                                         throws WTException
Throws:
WTException

getComputedColumns

public ColumnDescriptor[] getComputedColumns(BaseTableInfo a_tableInfo)
                                      throws WTException
Throws:
WTException

isComputedColumn

public boolean isComputedColumn(String colName,
                                String[] allColumnNames)

createTableItems

public String createTableItems(String a_className,
                               DatabaseInfo a_dbInfo)
                        throws WTException
Throws:
WTException

createAlterTableAddColumns

public void createAlterTableAddColumns(BaseTableInfo a_baseTableInfo,
                                       StringBuffer a_buffer)
                                throws WTException
Throws:
WTException

createAlterTableDropColumns

public void createAlterTableDropColumns(BaseTableInfo a_baseTableInfo,
                                        StringBuffer a_buffer)
                                 throws WTException
Throws:
WTException

createIndexItems

public String createIndexItems(String a_className,
                               DatabaseInfo a_dbInfo)
                        throws WTException
Throws:
WTException

dropIndexItems

public String dropIndexItems(String a_className,
                             DatabaseInfo a_dbInfo)
                      throws WTException
Throws:
WTException

createFKConstraintItems

public void createFKConstraintItems(LinkInfo a_linkInfo,
                                    DatabaseInfo a_dbInfo,
                                    HashMap createMap)
                             throws WTException
Throws:
WTException

createFKConstraintItems

public void createFKConstraintItems(LinkInfo a_linkInfo,
                                    DatabaseInfo a_dbInfo,
                                    StringBuffer create_buffer,
                                    StringBuffer drop_buffer)
                             throws WTException
Throws:
WTException

createFKConstraintItems

public void createFKConstraintItems(LinkInfo a_linkInfo,
                                    DatabaseInfo a_dbInfo,
                                    StringBuffer create_buffer,
                                    StringBuffer drop_buffer,
                                    HashMap createMap)
                             throws WTException
Throws:
WTException

createRoleFKConstraintItems

public void createRoleFKConstraintItems(DatabaseInfo a_dbInfo,
                                        RoleDescriptor a_roleDescriptor,
                                        String propertyName,
                                        String referenceType,
                                        boolean isLinkTable,
                                        StringBuffer create_buffer,
                                        StringBuffer drop_buffer,
                                        HashMap createMap)
                                 throws WTException
Throws:
WTException

createTriggerConstraintItems

public void createTriggerConstraintItems(ClassInfo a_classInfo,
                                         DatabaseInfo a_dbInfo,
                                         StringBuffer create_buffer)
                                  throws WTException
Throws:
WTException

createAllClassesTriggerConstraintItems

public void createAllClassesTriggerConstraintItems(ClassInfo a_classInfo,
                                                   DatabaseInfo a_dbInfo,
                                                   StringBuffer create_buffer,
                                                   StringBuffer drop_buffer)
                                            throws WTException
Throws:
WTException

createLinkTriggerConstraintItems

public void createLinkTriggerConstraintItems(DatabaseInfo a_dbInfo,
                                             LinkInfo a_linkInfo,
                                             String propertyName,
                                             StringBuffer create_buffer,
                                             StringBuffer drop_buffer)
                                      throws WTException
Throws:
WTException

createLinkSpecificTriggerConstraintItems

public void createLinkSpecificTriggerConstraintItems(LinkInfo a_linkInfo,
                                                     DatabaseInfo a_dbInfo,
                                                     StringBuffer create_buffer,
                                                     StringBuffer drop_buffer)
                                              throws WTException
Throws:
WTException

createRoleTriggerConstraintItems

public void createRoleTriggerConstraintItems(DatabaseInfo a_dbInfo,
                                             RoleDescriptor a_roleDescriptor,
                                             String role_side,
                                             StringBuffer create_buffer,
                                             StringBuffer drop_buffer)
                                      throws WTException
Throws:
WTException

getDescendentTables

public List getDescendentTables(RoleDescriptor a_roleDescriptor)
                         throws WTException
Throws:
WTException

getIndexColumns

public abstract String[] getIndexColumns(BaseTableInfo a_tableInfo,
                                         String[] a_indexColumns,
                                         boolean a_isUnique,
                                         int a_indexOffset)

getComputedIndexColumns

public String[][] getComputedIndexColumns(String[][] a_indexColumns,
                                          boolean a_isUnique)

createIndicies

public abstract void createIndicies(BaseTableInfo a_baseTableInfo,
                                    String[][] a_indexColumns,
                                    boolean a_isUnique,
                                    StringBuffer a_buffer)
                             throws WTException
Throws:
WTException

dropIndicies

public abstract void dropIndicies(BaseTableInfo a_baseTableInfo,
                                  String[][] a_indexColumns,
                                  boolean a_isUnique,
                                  StringBuffer a_buffer)
                           throws WTException
Throws:
WTException

createIndex

public void createIndex(BaseTableInfo a_tableInfo,
                        String[] a_columns,
                        boolean a_isUnique,
                        String a_indexName,
                        StringBuffer a_buffer)
This method constructs the clause to create an index


dropIndex

public abstract void dropIndex(BaseTableInfo a_tableInfo,
                               String[] a_columns,
                               boolean a_isUnique,
                               String a_indexName,
                               StringBuffer a_buffer)

createView

public String createView(DatabaseInfo a_dbInfo)
                  throws WTException
Throws:
WTException

dropView

public String dropView(String a_tableName,
                       StringBuffer a_buffer)

createIndexOption

protected void createIndexOption(BaseTableInfo a_tableInfo,
                                 StringBuffer a_buffer)

getAdjustedName

protected String getAdjustedName(String name,
                                 int maxLength)

getIndexName

protected String getIndexName(BaseTableInfo a_tableInfo,
                              boolean a_isUnique,
                              String a_indexName)

isSQLTypeBlob

public abstract boolean isSQLTypeBlob(int sql_type)

getSQLTypeAsString

public abstract String getSQLTypeAsString(int sql_type,
                                          int string_length)

getUpdateColumnList

public HashSet getUpdateColumnList(BaseTableInfo tableInfo)
                            throws WTException
Throws:
WTException

getTriggerNameList

public HashSet getTriggerNameList(BaseTableInfo tableInfo)
                           throws WTException
Throws:
WTException